为tornado框架支持jinja2
来源:互联网 发布:淘宝最晚多久确认收货 编辑:程序博客网 时间:2024/06/10 03:02
Jinja2是人气Web框架Flask中的内置模板引擎,而且与Django的模板引擎比较类似,这里我们就来看一下为Python的Tornado框架配置使用Jinja2模板引擎的方法
这样就可以在tornado中替换self.render为self.render_html了.
tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定使用他.
下载jinja2
还是用pip 下载
这样就可以使用了.
tornado与jinja2 整合
#coding:utf-8import tornado.webfrom jinja2 import Environment, FileSystemLoader, TemplateNotFoundclass 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.finish(content)
这样就可以在tornado中替换self.render为self.render_html了.
阅读全文
0 0
- 为tornado框架支持jinja2
- Tornado框架
- Tornado框架
- Python的Tornado框架的REST支持方案
- jinja2
- jinja2
- Jinja2
- jinja2
- Python学习:Flask框架和jinja2模板
- Tornado异步框架理解
- Tornado框架知识点
- Tornado Web 框架
- Tornado框架06-模板
- Tornado框架10-WebSocket
- Tornado框架11-部署
- Tornado框架07-数据库
- Tornado-Django-Flask框架...
- Tornado是为何物
- web api 使用
- Android开发规范和架构总结
- 设计模式学习总结之代理模式
- 集合排序--自然排序
- mysql自定义函数篇
- 为tornado框架支持jinja2
- ES6学习笔记- Module的语法
- BZOJ 1975 [Sdoi2010]魔法猪学院 A*+SPFA
- 页面数据排序
- C++中类的三种继承方式比较
- iOS开发之opencv学习笔记一:下载和安装
- Android 命名规范 (提高代码可以读性)
- yolo v2 损失函数源码解读
- Spring、Spring MVC、MyBatis 整合文件配置详解