Je suis un débutant de Django alors j'essaie de comprendre le concept de contexte et de processeur de contexte.
Je vais beaucoup apprécier votre réponse. Merci d'avance!
Lorsque vous utilisez un modèle Django, il est compilé une fois (et une seule fois) et stocké pour une utilisation ultérieure, à titre d'optimisation. Un modèle peut avoir des noms de variables entre deux accolades, telles que {{Myvar1}}, {{myvar2}}.
Un contexte est un dictionnaire avec des noms de variables comme "clé" et leurs valeurs comme "valeur". Par conséquent, si votre contexte pour le modèle ci-dessus ressemble à: {myvar1: 101, myvar2: 102}, lorsque vous transmettez ce contexte à la méthode de rendu du modèle, {{myvar1}} sera remplacé par 101 et {{myvar2}} par 102 dans votre modèle. Ceci est un exemple simpliste, mais un objet Context est en réalité le "Contexte" dans lequel le modèle est rendu.
Quant au ContextProcessor, il s’agit d’un concept légèrement avancé. Dans votre fichier settings.py, vous pouvez avoir répertorié quelques processeurs de contexte qui prennent un objet HttpRequest et renvoient un dictionnaire (similaire à l’objet Context ci-dessus). Le dictionnaire (contexte) renvoyé par le processeur de contexte est fusionné dans le contexte transmis par vous (l'utilisateur) par Django.
Un cas d'utilisation d'un processeur de contexte est lorsque vous souhaitez toujours insérer certaines variables dans votre modèle (par exemple, l'emplacement de l'utilisateur peut être candidat). Au lieu d'écrire du code pour l'insérer dans chaque vue, vous pouvez simplement écrire un processeur de contexte et l'ajouter aux paramètres TEMPLATE_CONTEXT_PROCESSORS dans settings.py.
J'espère que cela a du sens. Merci d'avoir suivi le cours!
-Sid
Un contexte est un nom de variable -> valeur de variable mappage qui est transmis à un modèle.
Processeurs de contexte vous permettent de spécifier un nombre de variables à définir dans chaque contexte automatiquement - sans que vous ayez à spécifier les variables dans chaque render () call.
La Context
est assez bien décrite dans la documentation officielle . En bref:
Au quotidien, principalement indirectement, car helper fonctionne construit la Context
pour vous
Voir 1 .: vous n’en aurez besoin que si vous utilisez l’API de bas niveau
Non, un processeur de contexte est une fonction qui prend une requête et renvoie un dictionnaire de variables qui sont ensuite disponibles dans tous les modèles rendus avec un RequestContext
, par exemple:
def get_stuff_from_session(request):
return {'stuff': request.session['stuff']}