重定向分为永久性重定向和暂时性重定向,在页面代码操作中就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此应该给他重定向到登录页面。
- 永久性重定向:http的状态码是301,多用于旧网址被废弃了要转到一个新的网址确保用户的访问。
- 暂时性重定向:http的状态码是302,表示页面的暂时性跳转。比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面,这种情况下,应该用暂时性重定向。
示例代码1:
from flask import Flask, url_for, request, redirect
app = Flask(__name__)
@app.route('/')
def index():
# return redirect('www.baidu.com') # 这是一种错误写法
return redirect('https://www.baidu.com')
if __name__ == '__main__':
app.run()
运行结果:
示例代码2:
from flask import Flask, url_for, request, redirect
app = Flask(__name__)
@app.route('/userinfo')
def user_info():
user_id = request.args.get('id')
if user_id:
return "欢迎进入用户中心"
else:
return redirect(url_for('login'))
@app.route('/login')
def login():
return '请登录用户名!'
if __name__ == '__main__':
app.run()
运行结果: