Flask 模板
Flask 模板
2020-10-09 09:52 更新
在前面的實例中,視圖函數的主要作用是生成請求的響應,這是最簡單請求.實際上,視圖函數有兩個作用:
處理業務邏輯
返回響應內容
在大型應用中,把業務邏輯和表現內容放在一起,會增加代碼的復雜度和維護成本.
模板其實是一個包含響應文本的文件,其中用占位符(變量)表示動態部分,告訴模板引擎其具體的值需要從使用的數據中獲取
使用真實值替換變量,再返回最終得到的字符串,這個過程稱為’渲染’
Flask 是使用 Jinja2 這個模板引擎來渲染模板
使用模板的好處
視圖函數只負責業務邏輯和數據處理(業務邏輯方面)
而模板則取到視圖函數的數據結果進行展示(視圖展示方面)
代碼結構清晰,耦合度低
模板基本使用
在項目下創建 templates 文件夾,用于存放所有模板文件,并在目錄下創建一個模板文件 html 文件 hello.html
app = Flask(name)
@app.route(’/’)
def index():
return render_template(‘hello.html’)
模板變量
代碼中傳入字符串,列表,字典到模板中
from flask import Flask, render_template
app = Flask(name)
@app.route(’/’)
def index():
# 往模板中傳入的數據
my_str = ‘Hello Word’
my_int = 10
my_array = [3, 4, 2, 1, 7, 9]
my_dict = {
‘name’: ‘xiaoming’,
‘age’: 18
}
return render_template(‘hello.html’,
my_str=my_str,
my_int=my_int,
my_array=my_array,
my_dict=my_dict
)
模板中代碼
{{ my_str }}
{{ my_int }}
{{ my_array }}
{{ my_dict }} 運行效果
我的模板html內容
Hello Word
10
[3, 4, 2, 1, 7, 9]
{‘name’: ‘xiaoming’, ‘age’: 18}
示例代碼:
from flask import Flask, render_template
app = Flask(name)
@app.route(’/’)
def index():
my_int = 18
my_str = ‘curry’
my_list = [1, 5, 4, 3, 2]
my_dict = {
‘name’: ‘durant’,
‘age’: 28
}
if name == ‘main’:
app.run(debug=True)
我是模板
{{ my_int }}{{ my_str }}
{{ my_list }}
{{ my_dict }}
模板的list數據獲取
{{ my_list[0] }}
{{ my_list.1 }}
字典數據獲取
{{ my_dict['name'] }}
{{ my_dict.age }}
算術運算
{{ my_list.0 + 10 }}
{{ my_list[0] + my_list.1 }}
總結