1、MTV模型介紹
- 模型Model
Flask- PyMongo/Flask-MongoKit
Flask- SQLAlchemy - 視圖View
Flask-WTF/bootstrap-flask/Flask-Uploads - 模板Template
Jinja2
注意:其中視圖View是必須的,其余兩項為可選。
2、開發(fā)簡單網(wǎng)頁
使用flask庫里的Jinja2模板引擎,調(diào)用flask模塊里的render_template方法,將靜態(tài)的html文件傳入,同時也可以將數(shù)據(jù)傳輸?shù)絟tml文件中顯示。此時我們修改一下上述案例代碼:
from flask import Flask,render_template #導入render_template模塊
app=Flask(__name__)
@app.route('/')
def index():
return render_template("index.html") #調(diào)用render_template函數(shù),傳入html文件參數(shù)
if __name__=="__main__":
app.run(port=2023,host="127.0.0.1",debug=True)
如果這樣運行,pycharm終端會提示報錯,因為找不到index.html文件。flask框架在使用這個模板函數(shù)時,默認去尋找項目文件夾下的templates文件夾里的html文件。因此我們需要先新建一個templates文件夾,然后在里面新建一個html文件,項目結構及內(nèi)容參考如下:

image.png
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>welcome to 2020</title>
</head>
<body>
welcome to my webpage
<hr>
<p>這是采用render_template模板方法獲得的內(nèi)容:</p>
<br>
{{data}} #顯示出傳遞過來的變量內(nèi)容
</body>
</html>
如果想通過rendertemplate方法傳輸數(shù)據(jù),在html文件中顯示出來,一方面需要在render_template函數(shù)中加入數(shù)據(jù)參數(shù),如data=msg,這里msg為參數(shù)值,data為參數(shù)名。在html文件中就需要使用jinjia2模板里的數(shù)據(jù)控制語法:
{% python語句 %}
{{ 變量 }}
上述案例代碼修改一下,來測試一下數(shù)據(jù)傳輸效果:
from flask import Flask,render_template
app=Flask(__name__)
@app.route('/')
def index():
msg="my name is cr!"
return render_template("index.html",data=msg) #加入變量傳遞
if __name__=="__main__":
app.run(port=2023,host="127.0.0.1",debug=True)

image.png