iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
Software Development

Python Flask CICD 啟動 ! 建構屬於你的自動化流程 !系列 第 8

Day8 - Python Flask(二) - Jinja 和 render_template

  • 分享至 

  • xImage
  •  

前情提要:

今天要來分享的是 Jinja 和 render_template,Jinja 是 Flask 提供的樣版引擎,在搭配 render_template 的應用,就可以輕易的把標籤或資訊,動態的寫入 HTML 當中,因此在最後的實作中,就會使用這兩個概念來將前後端的資料進行串接!

使用範例:

  1. 首先會需要在目錄當中創建 templates,並且之後的 HTML 當需要在裡面創建,因為使用 render_template讀取時,都是從此目錄讀取 HTML 檔,因此此步驟需要特別注意!
  2. 因為 render_template 是 Flask 當中的一個函式,因此使用時要引入才可 from flask import render_template
  3. 在 templates 資料夾中創建 HTML,這裡以 index.html 為例。
# index.html 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Hello everyone my name is {{name}}</h1>
    {% for i in range(5) %}
        <h1>{{i}}</h1>
    {% endfor %}
</body>
</html>
  1. 此時在 app.py 中創建下列程式碼
from flask import Flask, render_template
app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html", name = "Kyle")

if __name__ == '__main__':
    app.run()
  1. 最後啟動後,即可在 http://localhost:5000/ 中看到以下結果
    https://ithelp.ithome.com.tw/upload/images/20230919/201515653IVlNxxJm8.png

程式碼講解:

  1. render_template 主要的功能是把在後端處理的數值,傳進 HTML 中,而其中可填入的參數如下:
    render_template("填寫 template 資料夾中 HTML 的檔案路徑", 變數名 = '變數', 變數名 = '變數')

  2. Jinja 主要的功能即是把傳入 HTML 中的數值實現出來,而以下為分隔符種類:

    • {% %} => 裡面填寫語言邏輯,以上面範例舉例,可使用此分隔符,來把 for 迴圈等等搬進 HTML 當中使用。
    • {{ }} => 裡面填寫 render_template 所引入的變數,以上面示範舉例,render_template 中引入的變數為 name,因此可使用 {{name}} 將數值引入。

上一篇
Day7 - Python Flask(一) - URL 路徑使用
下一篇
Day9 - Python Flask(三) - 表單設計
系列文
Python Flask CICD 啟動 ! 建構屬於你的自動化流程 !30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言