url_for()函數(shù)對于動態(tài)構(gòu)建特定函數(shù)的URL非常有用。 該函數(shù)接受函數(shù)的名稱作為第一個參數(shù),并接受一個或多個關(guān)鍵字參數(shù),每個參數(shù)對應(yīng)于URL的變量部分。
以下腳本演示了使用url_for()函數(shù)。
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 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)
上面的腳本有一個函數(shù)用戶(名稱),它接受來自URL的參數(shù)值。
User()函數(shù)檢查收到的參數(shù)是否與’admin’匹配。 如果匹配,則使用url_for()將應(yīng)用程序重定向到hello_admin()函數(shù),否則將該接收的參數(shù)作為guest參數(shù)傳遞給hello_guest()函數(shù)。
保存上面的代碼到一個文件: hello.py,并從Python shell運(yùn)行。
打開瀏覽器并輸入URL - http://localhost:5000/user/admin
瀏覽器中的應(yīng)用程序響應(yīng)輸出結(jié)果是 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 Hello Admin
在瀏覽器中輸入以下URL - http://localhost:5000/user/mvl
應(yīng)用程序響應(yīng)結(jié)果現(xiàn)在變?yōu)?-
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 Hello mvl as Guest