为Python的Tornado框架配置使用Jinja2模板引擎的方法
发布时间:2020-05-24 02:51:14 所属栏目:Python 来源:互联网
导读:tornado默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦,而jinja2语法与django模板相似所以决定使用他.
|
tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦,而jinja2语法与django模板相似所以决定使用他. 下载jinja2 还是用pip 下载(用的真是爽) pip install jinja2 这样就可以使用了. tornado与jinja2 整合 tornado和jinja2整合起来很简单(其实是网上找的比较简单),不知道从那里找到的反正找到了,不说了直接上代码
#coding:utf-8
import tornado.web
from jinja2 import Environment,FileSystemLoader,TemplateNotFound
class TemplateRendring(object):
"""
A simple class to hold methods for rendering templates.
"""
def render_template(self,template_name,**kwargs):
template_dirs = []
if self.settings.get('template_path',''):
template_dirs.append(self.settings['template_path'])
env = Environment(loader=FileSystemLoader(template_dirs))
try:
template = env.get_template(template_name)
except TemplateNotFound:
raise TemplateNotFound(template_name)
content = template.render(kwargs)
return content
# 就是重新写 BaseHandler 由jinja2模板渲染
class BaseHandler(tornado.web.RequestHandler,TemplateRendering):
"""
Tornado RequestHandler subclass.
"""
def initialize(self):
pass
def get_current_user(self):
user = self.get_secure_cookie('user')
return user if user else None
def render_html(self,**kwargs):
kwargs.update({
'settings': self.settings,'STATIC_URL': self.settings.get('static_url_prefix','/static/'),'request': self.request,'current_user': self.current_user,'xsrf_token': self.xsrf_token,'xsrf_form_html': self.xsrf_form_html,})
content = self.render_template(template_name,**kwargs)
self.write(content)
这样就可以在tornado中替换self.render为self.render_html了. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
