Tornado模板基本了解


1模板的基本了解

ornado自身提供了一個輕量級、快速並且靈活的模板語言在tornado.template模塊中。

模板就是格式固定的網頁:格式是固定的,內容是變化的模板是一個允許嵌入Python代碼片段的HTML文件

**1、在Application的參數中添加template_path 配置,指定模板的路徑和靜態文件的路徑**

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

**2、把html文件放入'templates'文件夾下 把靜態文件放入'static'文件夾下**

**3、使用render方法渲染模板**

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

這段代碼告訴Tornado在templates文件夾下找到一個名為tmeplate_index.html 的文件,讀取其中的內容,並且發送給瀏覽器

#### 模板中的符號

```python
{{   }}   表達式用雙大括號包圍,內容可以是任何python表達式 ,在雙大括號中的單詞是占位符
{%   %}   模板控制語句以{%  %}包圍
```

雙大括號中放置變量名或表達式,變量名與傳入的關鍵字參數名要相同

01index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
</head>
<body>

hello budong

<form method="post" action="/index">
    <p>用戶名<br><input type="text" name="name"></p>
    <p>密碼<br><input type="text" name="password"></p>
    <input type="submit">
</form>

</body>
</html>

02temp_index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

歡迎用戶 {{ username }}登錄

</body>
</html>

處理器文件

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

    def post(self):
        username = self.get_argument('name','no')
        passwd = self.get_argument('password','no')
        self.render('02tmep_index.html',username=username)

tornado的模板處理已經十分方便,在{{}}中可以傳入任意的python表達式:

(r'/temp',TempHandler),
class TempHandler(tornado.web.RequestHandler):
    def get(self):
        username = self.get_argument('name','no')
        self.render('02tmep_index.html',username=username)

接下來我們再來學習一下模板:

```python
#傳入一個表達式
{{ 1+2 }}
<br>
{{ time.time() }} # 可以執行函數
<br>
{{ haha() }} # 自定義的函數也可以傳入

```

#控制語句

控制語句的大部分就像對應的Python語句一樣工作

控制語句的返回以最近的{% end %} 結束

**if條件判斷**

{% if condition %}
     ...
{% elif condition %}
     ...
{% else %}
     ...
{% end %}

例子:

{% if username!='no' %}
    歡迎用戶 {{ username }} 登錄
{% else %}
    您還沒有登錄
{% end %}

**for循環**

{% for var in expr %}
     ...
{% end %}

在處理器中的寫法

class TempHandler(tornado.web.RequestHandler):
def test(self):
return 'this is tornado'

def get(self, *args, **kwargs):
username = self.get_argument('name','no')
li = ['a','b','c','d']
self.render('02temp_index.html',
username=username,
haha=self.haha,
li=li
)

在html文件中的寫法

<br>
{% for i in li%}
    {{ i }} <br>
{% end %}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM