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