Как получить доступ к данным сеанса в шаблонах Jinja2 (платформа Bottle на движке приложения)? - PullRequest
7 голосов
/ 31 марта 2010

Я использую микрорамку Бутылка в Google App Engine. Я использую Jinja2 для своих шаблонов. И я использую Стакан для обработки сессий. Я все еще довольно большой новичок в Python, и я очень рад, что дошел до этого :) Мой вопрос: как мне получить доступ к данным сеанса в шаблонах? Я не могу получить данные сеанса без проблем в реальном коде Python. И я мог бы передавать данные сеанса каждый раз, когда я вызываю шаблон jinja. Но поскольку мне нужны данные сеанса в строке главного меню сайта ... это означает, что мне придется передавать их на каждой странице. Кто-нибудь знает, могу ли я получить к нему доступ непосредственно в шаблонах?

Например, мне нужны данные сеанса для ссылок на заголовки:

На главную | FAQ | Войти

или

На главную | FAQ | Выход

Любая помощь очень ценится! : D

1 Ответ

11 голосов
/ 31 марта 2010

Вы можете добавить объекты в глобальные переменные среды Jinja2 , если хотите, чтобы они были доступны для всех шаблонов. См. эту страницу для получения дополнительной информации.

Обновление:

Простой пример для вашего установочного кода:

from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('yourapplication', 'templates'))

Затем в вашем коде обработки запроса:

env.globals['session'] = session # Your session
# Your template can contain things like {{ session['key'] }}
template = env.get_template('mytemplate.html')
print template.render(the='variables', go='here')
#return response using rendered data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...