Flask学习之旅——1.3 URL与视图(三)

本文介绍了Flask中如何进行页面跳转和重定向,包括永久性重定向(301状态码)和暂时性重定向(302状态码)。通过使用flask.redirect(url_for(), code=302)函数实现。示例中展示了当用户未登录时,从/profile/页面重定向到/login/页面的过程。同时,文章提到了参数传递的两种方式:作为URL路径的一部分和使用查询字符串。
摘要由CSDN通过智能技术生成

Flask学习之旅——1.3 URL与视图(三)

前言

页面跳转和重定向(redirect函数)

什么是重定向?

重定向分为永久性重定向暂时性重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。

  • 永久性重定向:http的状态码是301,多用于旧网址被废弃了要转到一个新的网址确保用户的访问。
  • 暂时性重定向:http的状态码是302,表示页面的暂时性跳转。比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面,

在Flask中怎样实现重定向?

flask中,重定向是通过flask.redirect(location,code=302)这个函数来实现的。

  • location表示需要重定向到的URL,应该配合url_for()函数来使用。
  • code表示采用哪个重定向,默认是302也即暂时性重定向,可以修改成301来实现永久性重定向

参数传递的两种方法:

  • 作为URL的组成部分,如:/look/1
  • 查询字符串法,如:/book?id=1

例子:

 from flask import Flask,url_for,request,redirect ###引入request,redirect库

 app = Flask(__name__)
 app.debug = True

 @app.route('/login/',methods=['GET','POST'])  ###指定HTTP方法
 def login():
     return 'login page'

 @app.route('/profile/',methods=['GET','POST'])
 def profile():
    ###获取URL中的参数,这里采用查询字符串法,路径为:/profile?name=
     name = request.args.get('name')  

     if not name:
     # 如果没有name,说明没有登录,重定向到登录页面
         return redirect(url_for('login'))  ##重定向
     else:
         return name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来程序猿小吕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值