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