Comment obtenir une liste de variables à partir de Jinja 2 modèle?
Si je retourne un Jinja2 modèle comme suit:
return render_response('home.htm', **context)
Comment obtenez alors une liste de variables de contexte à partir de l'intérieur du modèle?
- Comment sur le modèle de la lecture de la source? Quel est le mal?
Vous devez vous connecter pour publier un commentaire.
Techniquement, parce que le contexte n'est pas passée comme un nom de dictionnaire, un peu de travail est requis pour générer une liste des variables de contexte à partir de l'intérieur d'un modèle. Il est cependant possible.
Définir un Jinja contexte de la fonction de retour de la jinja2.Contexte de l'objet, qui est essentiellement un dictionnaire des variables globales/fonctions
Faire que les fonctions disponibles dans l'espace de noms global; c'est à dire un jinja2.De l'environnement ou jinja2.Modèle globals dictionnaire
Éventuellement, de filtrer les objets du contexte; par exemple, l'utilisation
callable()
de sauter Jinja par défaut des fonctions d'assistance global (gamme, menuisier, etc.). Cela peut être fait dans le contexte de la fonction ou le modèle; là où il fait le plus de sens.Exemple:
[Alternativement, appel
render_response
avec('home.htm', context=context)
pour faire l'autre solution de travail.]callable
vérifier, votre solution irait à l'encontre des fonctions qui ont explicitement été transmises dans le cadre du contexte. Sans doute n'arrive pas souvent, mais pourrait faire une différence.template
est une mondial,get_context()
peut renvoyer un nouveau dictionnaire basé surcontext
mais sans les clés qui existent aussi danstemplate.globals
.Voici comment obtenir @crewbum réponse de travail à partir d'un Flacon d'application: