Flask 框架学习_3(页面跳转和重定向 + Response响应)

页面跳转和重定向

什么是重定向?

重定向在页面上的表现就是浏览器从一个页面自动跳转到另外一个页面。
比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,此时应该重定向到登录页面。

重定向的分类:

永久重定向: http的状态码是301,多用于旧网址被废弃了要转到一个新的网址确保用户的访问,一个典型的例子是你输入旧的网址会自动跳转到新的网址,这种情况下应该用永久重定向。

临时重定向: http的状态码是302,表示页面的暂时性跳转。比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面,这种情况下,应该用暂时性重定向。

HTTP状态码分类:
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):
在这里插入图片描述

redirect()函数实现重定向

在flask中,重定向是通过flask.redirect(url, code=302)这个方法来实现的,url表示需要重定向到的URL,可以结合url_for()函数来使用,code表示重定向类型状态码,默认是302也即暂时性重定向,可以修改成301来实现永久性重定向。

示例:模拟访问个人中心页面,未携带name参数而重定向到登录页面

from flask import Flask,url_for,request,redirect

app = Flask(__name__)


@app.route('/')
def index():
    return 'Hello World'


@app.route('/article/<aid>')
def article_list(aid):
    return 'article %s' % aid

@app.route('/login/')
def login():
    print(request.form.get('name'))
    return 'login'

@app.route('/profile/')
def profile():
    name = request.args.get('name')
    if name:
        return name
    else:
        return redirect('/login')

if __name__ == '__main__':
    app.run(debug=True)


示例如下:
未传入name的URL:http://127.0.0.1:5

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值