Flask 應用程式路由

Salman Mehmood 2024年2月15日
Flask 應用程式路由

我們將學習如何在 Flask 中建立路由,以及在 Flask 中呼叫路由時如何獲得響應。

使用 Flask 中的 app.route() 裝飾器建立頁面

我們可以路由的方式是通過使用裝飾器,那麼裝飾器是什麼?好吧,每當我們看到一個帶有類似 @app.route('/') 的函式的 @ 符號時,它就是一個裝飾器。

這是一種包裝現有 Python 函式並修改其行為的方法。我們將 URL 路由或對映到返回值,並且每當使用者請求 URL 時,伺服器的響應將是任何函式的返回值。

我們將向你展示一些更有意義的示例,因此讓我們建立一條路線。

@app.route('/fund-api')

現在我們將定義一個名為 Fund_Func() 的函式,因此每當使用者訪問通常是我們的 URL 的頁面時,例如 /fund-api,該函式將返回包含在該函式下的所有內容。我們將返回 HTML <h2> 標籤。

def Fund_Func():
    return "<h2>Your fund is returned</h2>"

當我們儲存並執行這個伺服器時,我們可以訪問我們的索引頁面並繼續在 URL 中寫入 fund-api,這意味著我們請求伺服器提供 Fund_Func 頁面並檢查請求是否有效.如果路由有效,那麼它將執行該路由中存在的函式。

請求伺服器返回函式

使用 render_template() 包含 HTML 有更好的方法。我們要做的另一件事是在路由中使用變數。

假設我們正在設定我們的網頁,在這個網頁中,我們有一個配置檔案部分,我們想知道哪個使用者正在使用它的配置檔案。

我們需要加入該變數以成為此 URL 的一部分,並且根據該變數,內容會發生變化。現在我們要建立一個新路由,在路由內部,我們將新增一個名為 candidate_name 的變數並將其放在尖括號之間。

現在我們將在路由中使用的函式中傳遞一個引數,然後我們可以返回這個變數以及我們想要在螢幕上顯示的任何內容。我們將從 URL 傳遞這個變數。

@app.route("/fund-user-api/<candidate_name>")
def Fund_Func_Var(candidate_name):
    return "<h2>Hi %s,your fund is returned</h2>" % candidate_name

當我們通過 URL 傳遞變數值時,它將返回帶有我們傳遞的引數的響應,如果我們不傳遞引數值,它將引發錯誤,因為這也是 URL 的一部分。

將使用者傳遞到 URL

完整的 Python 程式碼:

from flask import Flask

app = Flask(__name__)


@app.route("/")
def index():
    return "The main page"


@app.route("/fund-api")
def Fund_Func():
    return "<h2>Your fund is returned</h2>"


@app.route("/fund-user-api/<candidate_name>")
def Fund_Func_Var(candidate_name):
    return "<h2>Hi %s,your fund is returned</h2>" % candidate_name


if __name__ == "__main__":
    app.run(debug=True)
作者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn