配置模版路径
'template_path': os.path.join(BASE_PATH, 'templates')
渲染并返回给客户端
self.render('index.html')
变量与表达式
class IndexHandler(RequestHandler):
def get(self, *args, **kwargs):
dic = {
'name': 'mxt',
'age': 18,
'gender': 'female',
}
temp = 100
info = {
'a': 1,
'b': 2
}
self.render('index.html', **dic, num=temp, info=info)
{{name}} # mxt
{{gender}} # female
{{num}} # 100
{{info["a"]}} # 1
流程控制
if
{% if flag==1 %}
<p>111</p>
{% elif flag==2 %}
<p>222</p>
{% else %}
<p>333</p>
{% end %}
for
{% for i in arr %}
<p>{{i}}</p>
{% end %}
while
待补充
函数
static_url()
获取配置的静态目录,并将参数拼接到静态目录后,返回新的路径。
用法:
<link rel="stylesheet" href="{{static_url('css/index.css'}}">
优点:
- 修改静态目录后不需改变模板
- static_url创建了一个基于文件内容的hash值,并将其添加到URL末尾,当做查询参数。这个hash值总能保证加载到都是最新文件,而不是以前的缓存版本。不管在开发还是先上阶段都是很有必要的。
自定义函数
class FuncHandler(RequestHandler):
def get(self, *args, **kwargs):
def mySum(a, b):
return a + b
self.render('func.html', mySum=mySum)
{{mySum(1,5)}}
转义
tornado默认开启自动转义功能,能防止网站受到恶意攻击。
关闭自动转义
-
raw
关闭当前标签的自动转义
{% raw tagStr %}
-
autoescape
关闭当前模板的自动转义
{% autoescape None %}
-
在配置中修改
关闭所有模板的自动转义,
"autoescape": None
-
escape()
关闭自动转义后,可以使用该方法对特定变量开启转义
{{escape(tagStr)}}
继承
{% extends "base.html" %}
{% block main %}
{% end %}
静态文件
-
static_path
告诉tornado从文件系统中的某一个特定位置提供静态文件。
示例
'static_path': os.path.join(BASE_PATH, 'static'),
请求方式
http://127.0.0.1:8092/static/html/index.html
引入其他文件
<link rel="stylesheet" href="{{static_url('css/index.css')}}"> <script type="text/javascript" charset="utf-8" src="{{static_url('js/index.js')}}"></script>
-
StaticFileHandler
tornado内置的用来提供静态资源文件的handler。
可以通过tornado.web.StaticFileHandler来映射静态文件。
参数:
- path:提供静态文件的根路径
- default_filename:访问路由中未指定文件名时,默认提供的静态文件名
注意:
最好在路由规则的最下面使用,否则可能会导致其他路由不能匹配。
使用示例:
# 放在最下面 (r'/(.*)$', tornado.web.StaticFileHandler, {'path': os.path.join(config.BASE_PATH, 'static/html')}), (r'/(.*)$', tornado.web.StaticFileHandler,{'path': os.path.join(config.BASE_PATH, 'static/html'), 'default_filename': 'index.html'}),
网友评论