最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python的Tornado框架配置使用Jinja2模板引擎

来源:动视网 责编:小采 时间:2020-11-27 14:26:20
文档

Python的Tornado框架配置使用Jinja2模板引擎

Python的Tornado框架配置使用Jinja2模板引擎:Jinja2是人气Web框架Flask中的内置模板引擎,而且与Django的模板引擎比较类似,这里我们就来看一下为Python的Tornado框架配置使用Jinja2模板引擎的方法tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法
推荐度:
导读Python的Tornado框架配置使用Jinja2模板引擎:Jinja2是人气Web框架Flask中的内置模板引擎,而且与Django的模板引擎比较类似,这里我们就来看一下为Python的Tornado框架配置使用Jinja2模板引擎的方法tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法


Jinja2是人气Web框架Flask中的内置模板引擎,而且与Django的模板引擎比较类似,这里我们就来看一下为Python的Tornado框架配置使用Jinja2模板引擎的方法

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, template_name, **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了.

更多Python的Tornado框架配置使用Jinja2模板引擎相关文章请关注PHP中文网!

文档

Python的Tornado框架配置使用Jinja2模板引擎

Python的Tornado框架配置使用Jinja2模板引擎:Jinja2是人气Web框架Flask中的内置模板引擎,而且与Django的模板引擎比较类似,这里我们就来看一下为Python的Tornado框架配置使用Jinja2模板引擎的方法tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top