1. 程式人生 > >Flask_學習筆記_05: Flask中的網頁模板

Flask_學習筆記_05: Flask中的網頁模板

今天來學習一下Flask中網頁模板以及網頁模板引數的使用。

如果你是使用Pycharm pro版的話,建立專案的時候,選擇Flask專案,所有的基礎檔案和資料夾Pycharm會自動幫你創建出來,在網上找了張圖,僅供參考:

選擇專案型別:Flask,這裡注意你的Python版本
Flask_學習筆記_05: Flask中的網頁模板
建立好之後就是下面的樣子:
Flask_學習筆記_05: Flask中的網頁模板

由於我用的是Pycharm community版本,沒有專案型別可選,但是自己補一下兩個資料夾就行,一個是static,一個是templates。
簡單說明一下,static是存放image, css等專案檔案的。templates是存放頁面模板等專案檔案的。
Flask_學習筆記_05: Flask中的網頁模板

下面就模擬一個需求,使用者已經登入了,要在首頁顯示使用者的使用者名稱資訊,再隨便寫一句歡迎的話。這裡我們就要引入一個新的類: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',效果如下:
Flask_學習筆記_05: Flask中的網頁模板
然後我們再換一個使用者名稱,讓username='張無忌'
Flask_學習筆記_05: Flask中的網頁模板

小結

  1. 模板檔案位置:應該放到templates資料夾下。
  2. 如果使用模板渲染函式,首先匯入render_template類。
  3. 使用render_template()函式時,要告訴這個函式要渲染的html檔名,還有引數名和值,如果有的話。
  4. 在HTML中引用引數的格式:{{引數名}},一定要這個格式,這是Flask的語法,其它格式無效。