Le Jinja2 création de modèles de langage, le concept de 'ici' (répertoire courant)?
Ne Jinja2 modèle de prise en charge de chemins relatifs par exemple %(here)s/other/template.html
, pour inclure d'autres modèles par rapport à l'actuel modèle de sa place dans le système de fichiers?
Vous devez vous connecter pour publier un commentaire.
Je ne le pense pas. Généralement vous d'inclure ou d'étendre à d'autres modèles en spécifiant leurs chemins relatifs à la racine de ce modèle de chargeur et de l'environnement que vous utilisez.
Donc, disons que vos modèles sont tous dans
/path/to/templates
et vous avez mis en place Jinja comme suit:Maintenant, si vous souhaitez inclure
/path/to/templates/includes/sidebar.html
dans le/path/to/templates/index.html
modèle, vous devez écrire la ligne suivante dans votreindex.html
:et Jinja serait de savoir comment le trouver.
Juste pour ajouter à la Volonté de McCutchen réponse,
Vous pouvez avoir plusieurs répertoires dans votre chargeur. Il recherche ensuite dans chacun des répertoires (dans l'ordre) jusqu'à ce qu'il trouve le modèle.
par exemple, si vous voulez avoir "sidebar.html" au lieu de "/includes/sidebar.html" alors:
au lieu de
Selon la documentation de jinja2.De l'environnement.join_path(), de soutien relative des chemins d'accès du modèle est possible en remplaçant join_path() pour mettre en œuvre le "modèle de chemin de rejoindre".
La façon la plus propre pour surmonter cette limitation, avec un jinja2 extension qui va permettre de l'importation par rapport les noms de modèle
Quelque chose dans les goûts de: