Como faço para acessar os dados da sessão em modelos Jinja2 (estrutura de garrafa no mecanismo de aplicativos)?

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

Pergunta

Estou executando a micro estrutura Garrafa no Google App Engine. estou a usar Jinja2 para meus modelos. E eu estou usando Taça para lidar com as sessões. Ainda sou um novato muito grande em Python e estou muito feliz, cheguei até aqui :) Minha pergunta é como faço para acessar os dados da sessão dentro dos modelos? Não posso obter os dados da sessão sem problemas no código Python real. E eu poderia passar os dados da sessão cada vez que chamo um modelo Jinja. Mas como preciso dos dados da sessão na barra de menus principal do site ... isso significa que eu teria que passar em todas as páginas. Alguém sabe se posso acessá -lo diretamente nos modelos?

Por exemplo, preciso dos dados da sessão para meus links de cabeçalho:

Casa | FAQ | Conecte-se

ou

Casa | FAQ | Sair

Qualquer ajuda é muito apreciada! : D

Foi útil?

Solução

Você pode adicionar coisas ao Jinja2 Globals do Meio Ambiente Se você deseja que eles sejam acessíveis a todos os modelos. Ver esta página Para informações adicionais.

Atualizar:

Um exemplo simples é, para o seu código de configuração:

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

Então, em seu código de manuseio de solicitação:

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top