为Python的Tornado框架配置使用Jinja2模板引擎的方法
作者:cangmean 时间:2022-07-19 03:49:07
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了.
标签:Tornado,Python
0
投稿
猜你喜欢
Python使用百度API上传文件到百度网盘代码分享
2023-08-05 02:38:52
php错误级别的设置方法
2023-11-24 10:30:35
在Python中append以及extend返回None的例子
2021-05-12 10:33:34
python实现两个一维列表合并成一个二维列表
2023-08-06 12:59:44
python自制简易mysql连接池的实现示例
2023-04-14 20:23:55
Python和perl实现批量对目录下电子书文件重命名的代码分享
2022-01-28 02:51:48
解决tensorflow模型参数保存和加载的问题
2022-07-19 17:44:00
MySQL中的 Binlog 深度解析及使用详情
2024-01-19 04:15:48
golang elasticsearch Client的使用详解
2024-05-28 15:24:41
Python实现PS图像调整黑白效果示例
2022-08-06 09:15:13
如何以及何时使用sIFR
2008-03-07 12:38:00
XMLHTTP资料
2008-09-05 17:20:00
删除select中所有option选项jquery代码
2024-04-22 12:58:42
详解Vue.js 可拖放文本框组件的使用
2024-04-27 15:47:22
通过 Python 和 OpenCV 实现目标数量监控
2021-08-18 19:18:24
python的sys.path模块路径添加方式
2021-04-06 05:52:30
微信小程序前端自定义分享的实现方法
2024-05-02 16:13:35
详解JavaScript实现JS弹窗的三种方式
2024-04-19 10:42:20
Django实现跨域请求过程详解
2022-08-31 23:45:56
星球大战与Python之间的那些事
2023-05-25 13:49:35