gpt4 book ai didi

python - Tipfy & Jinja : Creating a logout URL for every page

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:54 25 4
gpt4 key购买 nike

我有一个带有常用样板链接的神社模板,其中之一是“注销”链接。此链接的 URL 必须在呈现页面之前使用 Users.create_logout_url() 生成。

我想避免为每个获取/发布处理程序生成此 URL 并将其添加到我的 render_response。我研究了替代方案,但没有找到解决此问题的实用方法。

BaseRequestHandler

这似乎是最干净的方法,但我不确定如何去做。会不会是

self.vars['logout_link'] = users.create_logout_url(self.request.path))

..然后,在所有标准响应处理程序中:

return render_response('template.html', **vars)

?

装饰器

这似乎是另一种选择,尽管看起来有点困惑。我想它会以相同的方式工作(将注销链接分配给包装函数中的局部变量)。

上下文处理?

我正在使用 tipfy/jinja,据我所知,它似乎不支持这一点。

我应该进一步调查哪条路径有什么建议吗?

谢谢

最佳答案

我用 Jinja/GAE 做了类似的事情,我使用了一个 BaseHandler + 一个我包含的模板。基础处理器:

class BaseHandler(webapp2.RequestHandler):
...
def render_jinja(self, name, **data):
data['logout_url']=users.create_logout_url(self.request.uri)
template = jinja_environment.get_template('templates/'+name+'.html')
self.response.out.write(template.render(data))

然后我可以继承例如表单处理程序的基本处理程序:

class FileUploadFormHandler(BaseHandler):
def get(self):
...
self.render_jinja('contact_jinja', form=form, ...

关于python - Tipfy & Jinja : Creating a logout URL for every page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8329204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com