Tornado-05、tornado模版
Tornado模板
1.模板的基本了解
准备工作
Tornado自身提供了一个轻量级、快速并且灵活的模板语言在tornado.template模块中。
模板就是格式固定的网页:格式是固定的,内容是变化的模板是一个允许嵌入Python代码片段的HTML文件
在tornado文件夹下新建一个lesson4文件夹 在该文件夹下新建一个start1.py文件 先添加一些基本内容
然后按下列步骤操作
1、在Application的参数中添加template_path 配置,指定模板的路径和静态文件的路径
template_path='templates', static_path='static',
2、在lesson4文件夹下新建template文件夹(用来存放html文件)
在lesson4文件夹下新建static文件夹(用来存放图片,css,js等静态文件)
3、使用render方法渲染模板 添加以下代码
(r'/',IndexHandler), # 添加路由 class IndexHandler(tornado.web.RequestHandler): def get(self): self.render('index.html')
这段代码告诉Tornado在templates文件夹下找到一个名为index.html 的文件,读取其中的内容,并且发送给浏览器
4、在templates文件夹下新建一个index.html文件
在body中添加下列代码
hello boys and girls!
运行后显示的结果
2.模板中的符号
{{ }} 表达式用双大括号包围,内容可以是任何python表达式 ,在双大括号中的单词是占位符 {% %} 模板控制语句以{% %}包围 {# #} 模版注释格式
双大括号中放置变量名或表达式,变量名与传入的关键字参数名要相同
在templates中新建IndexHandler.html
并在这个文件的body中添加以下代码
<form method="post" action="/html"> <p>用户名<br><input type="text" name="name"></p> <p>密码<br><input type="text" name="password"></p> <input type="submit"> </form>
在templates中新建index2.html文件
并在body中加入以下代码
<b>欢迎用户 {{ username }}登录</b>
处理器文件
class IndexHandler(tornado.web.RequestHandler): def get(self): self.render('index1.html') def post(self): username = self.get_argument('name','no') self.render('index2.html',username=username)
tornado的模板处理已经十分方便,在{{}}中可以传入任意的python表达式:
#为了测试方便,新建一个简单的路由 (r'/temp',TempHandler), class TempHandler(tornado.web.RequestHandler): def get(self): username = self.get_argument('name','no') self.render('temp.html',username=username)
接下来我们在index.html文件中添加以下代码
hello boys and girls!<br> <!--传入一个表达式--> {{ 10+27 }} <br> {{ time.time() }} <!--可以执行函数--> <br> {{ haha() }} <!--自定义的函数也可以传入-->
在start1.py中的TempHandler中添加以下代码
def haha(self): return '这里是tornado' def get(self): username = self.get_argument('name','no') import time li = ['a','b','c','d'] self.render('index.html', username=username, time=time, haha=self.haha, li=li )
3.控制语句
控制语句的大部分就像对应的Python语句一样工作
控制语句的返回以最近的{% end %} 结束
if条件判断
{% if condition %} ... {% elif condition %} ... {% else %} ... {% end %}
例子:
{% if username!='no' %} 欢迎用户 {{ username }} 登录 {% else %} 您还没有登录 {% end %}
for循环
{% for var in expr %} # 注意在模版中的控制语句都不需要加冒号 ... {% end %}
在html文件中的写法
<br> {% for i in li%} {{ i }} <br> {% end %}
以上就是模板的基本知识,我们在后面还会深入学习。