為Python的Tornado框架配置使用Jinja2模板引擎的方法
tornado 默認(rèn)有一個(gè)模板引擎但是功能簡(jiǎn)單(其實(shí)我能用到的都差不多)使用起來頗為麻煩, 而jinja2語法與django模板相似所以決定使用他.
下載jinja2
還是用pip 下載(用的真是爽)
pip install jinja2
這樣就可以使用了.
tornado與jinja2 整合
tornado和jinja2整合起來很簡(jiǎn)單(其實(shí)是網(wǎng)上找的比較簡(jiǎn)單), 不知道從那里找到的反正找到了,不說了直接上代碼
#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框架中內(nèi)置的模板引擎
- 使用Python的Tornado框架實(shí)現(xiàn)一個(gè)Web端圖書展示頁面
- Python的Tornado框架實(shí)現(xiàn)異步非阻塞訪問數(shù)據(jù)庫的示例
- Python的Tornado框架實(shí)現(xiàn)圖片上傳及圖片大小修改功能
- Python的Tornado框架的異步任務(wù)與AsyncHTTPClient
- Python Web框架Tornado運(yùn)行和部署
- 剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼
- python Tornado框架詳解
相關(guān)文章
Python實(shí)現(xiàn)上傳Minio和阿里Oss文件
這篇文章主要介紹了如何通過Python上傳Minio和阿里OSS文件,文中的示例代碼介紹得很詳細(xì),對(duì)我們的工作和學(xué)習(xí)都有一定的價(jià)值,感興趣的小伙伴可以了解一下2021-12-12
Python 爬蟲實(shí)現(xiàn)增加播客訪問量的方法實(shí)現(xiàn)
這篇文章主要介紹了Python 爬蟲實(shí)現(xiàn)增加播客訪問量的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Python測(cè)試框架:pytest學(xué)習(xí)筆記
這篇文章主要介紹了Python測(cè)試框架:pytest的相關(guān)資料,幫助大家更好的利用python進(jìn)行單元測(cè)試,感興趣的朋友可以了解下2020-10-10
Python基于codecs模塊實(shí)現(xiàn)文件讀寫案例解析
這篇文章主要介紹了Python基于codecs實(shí)現(xiàn)文件讀寫案例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Python動(dòng)態(tài)導(dǎo)入模塊和反射機(jī)制詳解
這篇文章主要介紹了Python動(dòng)態(tài)導(dǎo)入模塊和反射機(jī)制詳解,需要的朋友可以參考下2020-02-02
Pythont特殊語法filter,map,reduce,apply使用方法
這篇文章主要介紹了Pythont特殊語法filter,map,reduce,apply使用方法,需要的朋友可以參考下2016-02-02

