Flask URL構建


url_for()函式對於動態構建特定函式的URL非常有用。 該函式接受函式的名稱作為第一個引數,並接受一個或多個關鍵字引數,每個引數對應於URL的變數部分。

以下指令碼演示了使用url_for()函式。

from flask import Flask, redirect, url_for
app = Flask(__name__)

@app.route('/admin')
def hello_admin():
    return 'Hello Admin'

@app.route('/guest/<guest>')
def hello_guest(guest):
    return 'Hello %s as Guest' % guest

@app.route('/user/<name>')
def user(name):
    if name =='admin':
        return redirect(url_for('hello_admin'))
    else:
        return redirect(url_for('hello_guest',guest = name))

if __name__ == '__main__':
    app.run(debug = True)

上面的指令碼有一個函式使用者(名稱),它接受來自URL的引數值。

User()函式檢查收到的引數是否與’admin’匹配。 如果匹配,則使用url_for()將應用程式重定向到hello_admin()函式,否則將該接收的引數作為guest引數傳遞給hello_guest()函式。

儲存上面的程式碼到一個檔案:hello.py,並從Python shell執行。

開啟瀏覽器並輸入URL - http://localhost:5000/user/admin

瀏覽器中的應用程式響應輸出結果是 -

Hello Admin

在瀏覽器中輸入以下URL - http://localhost:5000/user/mvl

應用程式響應結果現在變為 -

Hello mvl as Guest