iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
Modern Web

Willisの後端幼幼班系列 第 16

後端幼幼班Day16 Flask篇 前端渲染

  • 分享至 

  • xImage
  •  

哈囉大家好 ~ 我是Willis,今天要介紹Flask的前端渲染喔 ! ε٩(๑> ₃ <)۶з

HTML渲染

render_template()

  • templates資料夾

    我們需要先創建templates資料夾,方便render_template()這個function能在資料夾中找到HTML檔進行呼叫。

  • 填寫一個HTML檔的網頁 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <h1>Hello</h1>
</body>
</html>
  • 程式碼 app.py
from flask import Flask, render_template  # 導入模組Flask, render_template

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route("/index")
def index():
    return render_template('index.html')  # 回傳在template資料夾中的HTML檔


if __name__ == "__main__":
    app.run()
  • 執行結果

傳送參數

學習了render_template(),我們還可以使用它來跟網頁傳送一些參數。

  • 網頁 index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <h1>Hello {{ username }}</h1>
</body>
</html>

{{ }}是一種jinja2的語法,Python才能讀懂,HTML無法讀懂它的語法

  • 程式碼 app.py
from flask import Flask, render_template

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route("/index")
def index():
    return render_template('index.html', username='Willis') # 傳送 username='Willis'


if __name__ == "__main__":
    app.run()
  • 執行結果

使用route傳送參數

除了在Server傳送參數外,我們還能用route來傳送參數。

  • 網頁 index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <h1>Hello {{ username }}</h1>
</body>
</html>
  • 程式碼 app.py
from flask import Flask, render_template

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route("/<user>")  # 新增一個自訂user的路徑
def index(user):
    return render_template('index.html', username=user)  # 傳送自訂的username


if __name__ == "__main__":
    app.run()
  • 定義 user 路徑為 Willis

  • 定義 user 路徑為 User

參考資料

https://dormousehole.readthedocs.io/en/latest/index.html
https://willisjoker.github.io/2022/07/29/flask_ep3/
上面連結是我的Blog唷~歡迎來看看(雖然現在內容還很少) (=´ω`=)

結尾

利用今天介紹的東西,我們學會了將資料回傳給前端,至於jinja2的部分我就不多作介紹了,那今天就到這裡囉 ! 掰掰 (๑•̀ω•́)ノ


上一篇
後端幼幼班Day15 Flask篇 Route(路由)
下一篇
後端幼幼班Day17 Flask篇 GET & POST
系列文
Willisの後端幼幼班30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言