一.定义模板地址
首先我们需要定义一下模板所在地址,让tornado知道去哪里找模板,一般我们把地址写在入口文件中,详情可以看《tornado 1. 项目结构初入》。下列代码static_path的值就是模板的地址。
settings = {
template_path=os.path.join(os.path.dirname(__file__),"template"),
'debug' : True,
}
二.传递参数到模板中
当我们在handler处理好数据后,就可以把数据传递到相应的模板中去。
class MainHandler(tornado.web.RequestHandler):
def com(a):
return a
def post(self):
number = self.get_argument('num')
self.render('main.html', quantity=number,com=com())
上述代码中渲染模板路径下的main.html模板,其中的变量number的值传递到模板中去,在模板中我们可以使用quantity的获取变量值。你甚至可以将一个函数传到模板中去,如上面com()函数
三.填充及控制语句
在main.html文件中填充变量,可以使用下列方式获取值:
{{ quantity }}
{{ com(1) }}
同时tornado还支持一些简单的控制语句:
{%if 或者 for %}
... 这里是各种表达式
{%end%}
Tornado在所有模板中默认提供了一些便利的函数。它们包括:
- escape(s):替换字符串s中的&、<、>为他们对应的HTML字符。
- url_escape(s):使用urllib.quote_plus替换字符串s中的字符为URL编码形式。
- json_encode(val):将val编码成JSON格式。(在系统底层,这是一个对json库的dumps函数的调用。查阅相关的文档以获得更多关于该函数接收和返回参数的信息。)
- squeeze(s):过滤字符串s,把连续的多个空白字符替换成一个空格。
三.其他
在模板中设置变量:
{%set str='xxxx'%}
使用:{{str}}
模板转义:转义是为了防止你的访客进行恶意攻击的,但当你不希望转移时,可以使用raw来阻止对变量转义。
{% raw mail %}