Flask学习之旅——1.3 URL与视图(三)
前言
- 由于本小节内容较多,故分成几篇文章来记录。
- 本文为《知了传课——URL与视图》的学习笔记。
- 原文地址:第三节:URL与视图 - Python框架Flask基础教程 - 知了传课
页面跳转和重定向(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
本文介绍了Flask中如何进行页面跳转和重定向,包括永久性重定向(301状态码)和暂时性重定向(302状态码)。通过使用flask.redirect(url_for(), code=302)函数实现。示例中展示了当用户未登录时,从/profile/页面重定向到/login/页面的过程。同时,文章提到了参数传递的两种方式:作为URL路径的一部分和使用查询字符串。
539

被折叠的 条评论
为什么被折叠?



