【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(永久移动)

【Flask】增加用户体验之 重定向redirect和反向解析url_for_第1张图片

☞url_for

你可能感兴趣的:(❤You,need,Python!,------【Flask】)