Как мне получить доступ к данным сеанса в шаблонах Jinja2 (платформа Bottle framework на app engine)?

StackOverflow https://stackoverflow.com/questions/2554174

Вопрос

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

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

Главная страница | Часто задаваемые вопросы | Вход в систему

или

Главная страница | Часто задаваемые вопросы | Выход из системы

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

Это было полезно?

Решение

Вы можете добавлять что-то в 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top