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 %}
以上就是模板的基本知识,我们在后面还会深入学习。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。