Tornado-0五、tornado模版

Tornado模板css

1.模板的基本了解

准备工做html

Tornado自身提供了一个轻量级、快速而且灵活的模板语言在tornado.template模块中。python

模板就是格式固定的网页:格式是固定的,内容是变化的模板是一个容许嵌入Python代码片断的HTML文件web

在tornado文件夹下新建一个lesson4文件夹 在该文件夹下新建一个start1.py文件 先添加一些基本内容
而后按下列步骤操做
一、在Application的参数中添加template_path 配置,指定模板的路径和静态文件的路径浏览器

template_path='templates',
static_path='static',

二、在lesson4文件夹下新建template文件夹(用来存放html文件)
在lesson4文件夹下新建static文件夹(用来存放图片,css,js等静态文件)less

三、使用render方法渲染模板 添加如下代码函数

(r'/',IndexHandler),  # 添加路由

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('index.html')

这段代码告诉Tornado在templates文件夹下找到一个名为index.html 的文件,读取其中的内容,而且发送给浏览器tornado

四、在templates文件夹下新建一个index.html文件
在body中添加下列代码post

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 %}

以上就是模板的基本知识,咱们在后面还会深刻学习。

相关文章
相关标签/搜索