J'utilise Jinja2, et je suis en train de créer un couple balises qui travaillent ensemble, de sorte que si j'ai un modèle qui ressemble à ceci:Comment puis-je créer une étiquette dans Jinja qui contient des valeurs de plus tard dans le modèle?
{{ my_summary() }}
... arbitrary HTML ...
{{ my_values('Tom', 'Dick', 'Harry') }}
... arbitrary HTML ...
{{ my_values('Fred', 'Barney') }}
Je finirais avec les éléments suivants :
This page includes information about <b>Tom</b>, <b>Dick</b>, <b>Harry</b>, <b>Fred</b>, and <b>Barney</b>.
... arbitrary HTML ...
<h1>Tom, Dick, and Harry</h1>
... arbitrary HTML ...
<h1>Fred and Barney</h1>
en d'autres termes, le my_summary() au début de la page inclut des informations fournies plus tard dans la page. Il devrait être assez intelligent pour prendre en compte les expressions qui se produisent dans les instructions include
et import
, ainsi.
Quelle est la meilleure façon de faire cela?
@Chris B. Une chose n'est pas claire: d'où vient la liste des valeurs? Connaissez-vous les sous-listes avant que le modèle ne soit rendu? Si vous ne les connaissez pas à ce moment-là, cela semble indiquer que votre modèle prend la responsabilité du contrôleur (en parlant vaguement de MVC). –
J'utilise essentiellement les modèles inclus pour dessiner des widgets, qui nécessitent certains fichiers css et js pour fonctionner. Le css et js vont dans le modèle de base, tandis que plus tard les modèles inclus rendent les widgets. Il n'y a donc aucun moyen de savoir a priori quelles bibliothèques seront nécessaires plus tard. –