• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 为Python的Tornado框架配置使用Jinja2模板引擎的方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python tornado,python3 tornado,python tornado教程,tornado框架,python jinja2等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定使用他.

下载jinja2

还是用pip 下载(用的真是爽)

pip install jinja2
</div>

这样就可以使用了.

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)

</div>

这样就可以在tornado中替换self.render为self.render_html了.

</div>

您可能想查找下面的文章:

  • python用装饰器自动注册Tornado路由详解
  • 使用Python的Tornado框架实现一个Web端图书展示页面
  • 深入解析Python的Tornado框架中内置的模板引擎
  • 使用Python的Tornado框架实现一个Web端图书展示页面
  • 为Python的Tornado框架配置使用Jinja2模板引擎的方法
  • Python的Tornado框架实现异步非阻塞访问数据库的示例
  • Python的Tornado框架实现图片上传及图片大小修改功能
  • Python的Tornado框架的异步任务与AsyncHTTPClient
  • 剖析Python的Tornado框架中session支持的实现代码
  • 在Python的Tornado框架中实现简单的在线代理的教程

相关文章

  • Python实现partial改变方法默认参数
  • 深入解析Python中的list列表及其切片和迭代操作
  • python使用正则表达式匹配字符串开头并打印示例
  • python如何在终端里面显示一张图片
  • Python模块学习 filecmp 文件比较
  • Python提取Linux内核源代码的目录结构实现方法
  • python基础教程之五种数据类型详解
  • python中安装模块包版本冲突问题的解决
  • python 回调函数和回调方法的实现分析
  • Python正则表达式匹配ip地址实例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python连接mysql数据库的正确姿势
    • Python的Flask框架中web表单的教程
    • python通过pil模块获得图片exif信息的方法
    • 利用Python中的mock库对Python代码进行模拟测试
    • python网络编程学习笔记(一)
    • python使用PyGame绘制图像并保存为图片文件的方法
    • 使用PyCharm配合部署Python的Django框架的配置纪实
    • Python入门学习之字符串与比较运算符
    • 总结的几个Python函数方法设计原则
    • Python迭代用法实例教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有