
先看一个例子:
以上就是通过模板来实现的。
模板就是html文件,只是其中加入了模板语法,需要服务器的渲染,才能正常显示数据。
在tornado中,模板就是一个html文件,但是模板通过模板语法,由tornado服务渲染之后,可以动态的往页面中填入数据,tornado自带模板语法,不需要再用其他的模板插件。
用 {{ expression }} 中间是任何 python 表达式,或者是一个变量。
例子:
前端模板获取:
此符号中放入模板中的命令,比如 if 、for 和 while 等,需要注意的是,使用 if 等命令是,需要加上 {% end %}。
除此之外,异常处理 try 也可以在模板中使用,但是这样做会让模板变得像 python 模块一样,因此并不建议大家这么做
其他模板指令 {% %}
在模板中要注释python表达式的运行,需要使用这个模板语法 {# #}
如果通过这种方式注释。
这只是在html页面上注释不展示,但是对于服务器还是依然渲染了,通过审查元素可以看出来:
`
要想在服务器端也注释了用到 {# #}
如果不想执行内容,需要在页面上打印出模板符号,只需要加上感叹号( ! )即可。
在模板中可以使用 if 判断,注意:最后需要以 {% end %} 结尾。
在 tornado 模板中可以使用 for 循环,注意:最后需要以 {% end %} 结尾。
while 循环
在 tornado 模板中可以使用 while 循环,注意:最后需要以 {% end %} 结尾。
页面并没有解析,只是当作一个字符串,直接在页面上打印出来
tornado默认是自动的转义,传入的数据都会当作字符串,不会被浏览器解析
将html标签当做字符串,所以a标签显示出来而没有解析。
局部具有局限性,需要一个个去改,太繁琐,可以用模板去转义处理。
要引用js,css,图片之类的可通过静态文件的方式去引用
两种引用方式:
第一种的static的是关键字与文件夹名和app里面配置的文件名不相关,它只是模板中的关键字,相当于通过static找到static_path后面的值替换掉。
首先,我们向Application对象的 init 方法传递了一个template_path参数,template_path参数告诉Tornado在哪里寻找模板文件。
index.html 存放在templates目录下。
demo2.html
self.render('index.html')
self.render('demo2.html',name='张三',age=100,sex='man')
可以将任何Python表达式放在双大括号中。Tornado将插入任何表达式计算结果值的字符串到输出中。
可以在Tornado模板中使用Python条件和循环语句,支持if、for、while和try。
语法:
Tornado在所有模板中默认提供了一些便利的函数。
向Application类的构造函数传递一个名为static_path的参数来告诉Tornado从文件系统的一个特定位置提供静态文件。
现在应用将以读取static目录下读取静态文件。
Tornado模板模块提供了一个叫作 static_url 的函数来生成static目录下文件的URL。
例如使用static目录下的style.css文件。
static_url函数会生成 /static/style.css?v=ab12 ,即:
static_url 函数创建了一个基于文件内容的 hash值 ,并将其添加到URL末尾( 查询字符串的参数v )。这个hash值确保浏览器总是加载一个文件的最新版而不是之前的缓存版本。无论是在你应用的开发阶段,还是在部署到生产环境使用时,都非常有用,因为你的用户不必再为了看到你的静态内容而清除浏览器缓存了。
注意在使用static_url函数生成静态文件路径时必须用{{ }}括起来,因为href属性引用的是一个地址。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)