您好,登錄后才能下訂單哦!
今天來學習一下Flask中網頁模板以及網頁模板參數的使用。
如果你是使用Pycharm pro版的話,創建項目的時候,選擇Flask項目,所有的基礎文件和文件夾Pycharm會自動幫你創建出來,在網上找了張圖,僅供參考:
選擇項目類型:Flask,這里注意你的Python版本
創建好之后就是下面的樣子:
由于我用的是Pycharm community版本,沒有項目類型可選,但是自己補一下兩個文件夾就行,一個是static,一個是templates。
簡單說明一下,static是存放image, css等項目文件的。templates是存放頁面模板等項目文件的。
下面就模擬一個需求,用戶已經登錄了,要在首頁顯示用戶的用戶名信息,再隨便寫一句歡迎的話。這里我們就要引入一個新的類:render_template,模板渲染。為什么這么叫?因為就是直接翻譯過來的,它的功能就是來渲染模板的,至于渲染這個詞,是繪圖術語,渲染在電腦繪圖中是指用軟件從模型生成圖像的過程。從這個定義來理解的話,就是美化,填充模型,讓模型更好看吧。就這么理解吧!
.py完整代碼如下:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index.html', username='uncleBen')
if __name__ == '__main__':
app.run(debug=True)
需要注意的是:
首先,導入Flask和render_template
其次,在使用的時候,一般就是return的內容做渲染,那就是return render_template(),這個render_template()函數里需要傳一個最基本的參數就是你要渲染哪個頁面,告訴它html文件名就行,因為它默認就會去templates這個文件下找你提供的html文件名,所以你的html文件不要亂放,否則它會找不到的。另外一個參數就是你要在前端頁面中顯示什么?今天這個例子是要顯示用戶名,拿就傳一個username參數進去。如有其它參數,也可以加,然后賦值。
好了,py文件內容寫好了,那么html里的代碼應該這么寫呢?這么才能拿到參數的值呢?來看一下html的代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
歡迎<b>{{ username }}</b>來到您的個人主頁,這個頁面是templates文件夾中的index.html模板。
</body>
</html>
很簡單,唯一跟普通HTML文件的區別就是多了一個{{ username }},重點來了,在Flask項目的HTML中如下想引用參數(py文件中定義的),必須要用雙花括號{{ }}括起來,就好了。so easy啊!
來看一下效果,上面Py代碼里我傳的username='uncleBen',效果如下:
然后我們再換一個用戶名,讓username='張無忌'
如果有多個參數呢?那剛開始你肯定要這么寫了:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index.html', username='張無忌', reg_days=15, location='光明頂')
if __name__ == '__main__':
app.run(debug=True)
運行一下,看看結果:
但是如果還有更多參數呢???比如10個,20個,要寫這么多嗎?這樣會讓人看到很不爽和很不專業的感覺。
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
context = {
'username': '張無忌',
'reg_days': 100,
'location': '光明頂'
}
return render_template('index.html', **context)
if __name__ == '__main__':
app.run(debug=True)
為了區別,我把注冊時間改成了100,來,運行一下,看一下效果:
小結
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。