模板
-
模板路径:
"template_path":os.path.join(BASE_DIRS,'templates'),
-
渲染并返回给客户端
-
self.render()
class homeHandler(RequestHandler): def get(self): self.render("home.html")
-
-
变量与表达式
-
语法
- {{var}}变量
- {{expression}}表达式
-
实例:
class homeHandler(RequestHandler): def get(self): temp = 100 per = { "name":"luciano", "age":21, } self.render("home.html",num = temp,per=per) ---------------------- num:{{num}} {{per["name"],per["age"]}}
-
注意:tornado中不能使用"点"语法(django可以)
-
-
流程控制
-
if
-
格式:
{% if 表达式1 %} 语句1 {% elif 表达式2%} 语句2 {% else %} 语句3 {% end %}
-
-
for
-
格式:
{% for 变量 in 可迭代集合 %} 语句 {% end %}
-
-
while不用
-
-
函数
-
static_url()
-
路径:“static_path”:os.path.join(BASE_DIRS,‘static’),
-
实例:
<link rel="stylesheet" href='{{static_url("css/home.css")}}'>
-
作用:获取配置的静态目录,并将参数拼接到静态目录后面,并返回新的路径
-
优点:修改目录不需要修改url、static_url创建了一个基于文件内容的hash值,
并将其添加到URL末尾(当一个查询参数),这个hash值总能保证加载的都是最新的文件,
而不是以前的版本。不论时开发阶段还是上线阶段都时必要的
-
-
自定义函数
class functionHandler(RequestHandler): def get(self): def mySum(n1,n2): return n1+n2 self.render("market.html",mySum=mySum) -------------------------- {{mySum(100,99)}}
-
转义(转成字符串)
-
tornado 自动转义 防止网站恶意攻击
-
手动关闭自动转义:
-
raw :关闭一行(常用)
{% raw str %}
-
autoescape None : 关闭当前文档的自动转义
{% autoescape None %}
-
在配置中修改 settings : 关闭当前项目的的自动转义
"autoescape":None,
-
-
手动开启局部转义
- escape()函数
-
作用:在关闭自动转义后,可以使用该方法对特定的变量进行转义
{{escape(str)}}
-
- escape()函数
-
-
继承
- 基本和Django一样
-
父模板(挖坑)
{% block main %} {% end %}
-
子类模板(填坑)
{% extends "base.html" %} {% block main %} <h1>这里是购物车</h1> {% end %}
-
- 基本和Django一样
-
静态文件
- static_path
-
作用:告诉tornado从文件系统中的某一个特定的位置提供静态文件
-
实例
"static_path":os.path.join(BASE_DIRS,'static'),
-
请求方式:
http://127.0.0.1:8080/static/html/index.html
-
引入其他文件
<link rel="stylesheet" href="{{static_url('css/home.css')}}"> <script type="text/javascript" src="{{static_url('js/test.js')}}"></script>
-
- staticHandler
-
因为网站大多数首页都是静态网站,不会用服务器中的路由
-
使用原因:因为static_path对于用户来说体验不佳(请求方式差)
-
本质:它是tornado预制的来提供静态资源文件的Handler
-
作用:可以通过"tornado.web.StaticHandler"来映射静态文件
-
请求方式:
http://127.0.0.1:8080/index.html
-
使用方式:
# staticHandler,注意要放在所有路由的最下面 (r'/(.*)$',tornado.web.StaticFileHandler, { "path":os.path.join(config.BASE_DIRS,"static/html"),"default_filename":"index.html"})# (.*)$-->匹配任何东西 参数说明: path:用来指定提供静态文件的根路径 default_filename:用来指定访问路由中未指明文件名时,默认提供的静态文件 注意:最好在路由位置的最后一行,否则其他路由会不好使
-
- static_path