在tornado项目中使用jinja2模板引擎
2019-04-08 本文已影响0人
野十六
在tornado项目中使用jinja2模板引擎很容易,只需要在BaseHandler中重写render_string方法。
具体代码如下:
import tornado.web
from jinja2 import Environment, FileSystemLoader
class BaseHandler(tornado.web.RequestHandler):
def render_string(self, template_name, **kwargs):
template_dirs = []
template_dirs.append(self.settings['template_path'])
env = Environment(loader=FileSystemLoader(template_dirs))
# 这里可以自定义过滤器
# env.filters['func_name'] = func_name
kwargs.update({
'settings': self.settings,
'static_url': self.static_url,
'request': self.request,
'current_user': self.current_user,
'xsrf_token': self.xsrf_token,
'xsrf_form_html': self.xsrf_form_html,
})
template = env.get_template(template_name)
html = template.render(kwargs)
return html