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

以上就是模板的基本知識,咱們在後面還會深刻學習。

相關文章
相關標籤/搜索