【Flask】增加使用者體驗之 重定向redirect和反向解析url_for
阿新 • • 發佈:2018-11-22
本篇部落格討論的redirect和url_for,均在Flask環境下。
上一篇部落格☜,我們自定義了錯誤資訊(頁面),但是這樣使用者體驗也是不夠友好的,因為一個簡單崩潰的頁面就很可能易造成使用者的流失,所以我們需要繼續提升使用者體驗。
舉個例子:現在雙十一活動結束了,但一些使用者儲存了雙十一活動的連結,如果現在這些使用者訪問這些已經過期的連結,我們該給返回什麼呢?自定義錯誤資訊?高清無碼大圖?......都不是,有一個好點子就是,當用戶訪問這些過期連結時,重定向到雙十二活動,哈哈哈。
所以有了redirect重定向。
一、redirect
作用:訪問當前url,重新請求一個新的url,增加使用者體驗。
redirect()的引數location,表示具體的url路徑
@app.route('/double11')
def index():
# 直接傳入url地址
return redirect('http://www.double12.com')
但是這樣,程式的擴充套件性不強,因為實際中有很多介面或商品介面一些連結都可以進入雙十一介面,不只例子中這一個檢視函式,我們要改的話,工作量太大了。
所以又有了url_for
二、url_for
作用:反向解析,可以讓重定向直接定位到具體的檢視函式,讓程式碼不冗餘,擴充套件性更強。
from flask import Flask,redirect,url_for app = Flask(__name__) @app.route('/') def index(): return redirect('http://www.double12.com') # 反向解析:建議使用url_for實現頁面重定向 @app.route('/demo') def demo_url_for(): return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True)
現在我們只需要把,檢視函式index()中的這一個連結改了,讓檢視函式demo()通過反向解析重定向到檢視函式index()上,既增加了使用者體驗,又為公司增加了效益,也減少了程式設計師的工作量,提升了工作效率。
注意:
redirect狀態碼:302,臨時移動,不同於301(永久移動)