能不能在BaseHandler就传到Jinja2模板去,我不想每次都传current_user,xsrf_form_html
有没有好的BaseHandler参考一下?
有没有好的BaseHandler参考一下?
1
kenneth OP Tornado整合Jinja2的时候,如何把这些变量传过去呢?
|
3
keakon Dec 20, 2012
覆盖 render 方法,把 self 传进去=。=
|
6
Livid MOD PRO 继承 RequestHandler,重新实现 initialize 方法,在 initialize 的时候给 handler instance 加一个数组 self._values,新增 finalize 方法,然后在其中把 _values 数组传给 Jinja2。
|
7
kenneth OP @Livid 我菜鸟,所以还是不太明白。我搜索了一些网络文章,这篇http://www.yeolar.com/note/2012/08/26/mako-usage/ 整合的是mako,感觉是我想要的,jinja2不知道如何重写render_string() 方法。
我试着用Tornado模仿v2ex,http://www.mvmap.com正在写。 |
8
Mattsive Dec 21, 2012
继承 RequestHandler,加一个 current_user 的 @property,在 view 里需要的时候 handler.current_user 即可
|
9
nanbei Dec 21, 2012
class BaseHandler(tornado.web.RequestHandler):
def get_current_user(self): username = self.get_secure_cookie("username") if not username: return None return username def get_context(self): self.context = { 'current_user':self.get_current_user(), } logging.info(self.xsrf_form_html) if config['app']['xsrf_cookies']: self.context['xsrf_form_html'] = self.xsrf_form_html return self.context |
10
nanbei Dec 21, 2012
强烈建议v2ex加上代码高亮!!!
|