7
votes

Inclure les variables dans le contexte de modèle sur chaque page avec bouteille.py

Y a-t-il une bouteille.py équivalent de processeurs de contexte que vous entrez dans le ballon?


0 commentaires

3 Réponses :


5
votes

Si vous utilisez une bouteille de vanille avec simplesTemplate, il y a une solution que j'ai trébutée sur.

Pour mon site, j'avais besoin d'accéder à certaines fonctions dans chaque modèle, app.get_url étant évidemment l'un d'entre eux. Cela a fonctionné pour moi: xxx

Ceci fonctionne comme de la bouteille 0.9, je n'ai pas testé sur des versions plus récentes du cadre.

Ce comportement est Sans-documents, mais Marcel Hellkamp l'a expliqué dans Ce fil . Dans ce cas, d'autres solutions sont également mentionnées:

  • passe sur les globaux dans _vars ou un modèle similaire arg.
  • Créez un décorateur pour alimenter les valeurs par défaut.

    Aussi, dans la bouteille 0.10, de nouvelles fonctions relatives au problème ont été introduites dans l'espace de noms de modèle SimpleTemplate Modèle: défini , obtenez et setingdefault


0 commentaires

0
votes

note : cette même solution peut être utilisée avec les autres moteurs de modèle. La technique est exactement la même, mais vous utilisez un taseemplate (cela fonctionne pour toutes les classes de modèle) ou la classe pour le moteur que vous souhaitez utiliser.


0 commentaires

1
votes

Utilisation de réponse précédente de Helgi forte>, j'utilise ce crochet pour faire un Processeur de contexte comme em> (bouteille 0.12.x):

import bottle


@bottle.hook('before_request')
def _context_processor():
    bottle.SimpleTemplate.defaults['foo'] = 'F00'
    bottle.SimpleTemplate.defaults['bar'] = 'B@R'


0 commentaires