1. 程式人生 > >【Flask】增加使用者體驗之 重定向redirect和反向解析url_for

【Flask】增加使用者體驗之 重定向redirect和反向解析url_for

本篇部落格討論的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(永久移動)

url_for