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