redirect
重定向是一种特殊的响应,响应内容是URL,而不是包含html代码的字符串。
重定向是一种特殊的响应, 响应内容是URL,而不是包含HTML 代码的字符串。浏览器收到这种响应时, 会向重定向的URL 发起 GET 请求,显示页面的内容。
下面是一段代码,正常运行时候都是显示“这是首页”
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '这是首页'
@app.route('/login/')
def login():
return '欢迎登录'
加上redirect函数后再次运行都会显示“欢迎登陆”,就是自动跳到登陆(login)界面去了
from flask import Flask,redirect,url_for
app = Flask(__name__)
@app.route('/')
def index():
login_url = url_for('login')
return redirect(login_url)
return '这是首页'
@app.route('/login/')
def login():
return '欢迎登录'
当用户访问某些网页时,如果他还没登录,我们往往会把网页 重定向 到登录页面,Flask 提供了 redirect 对象对其进行处理,我们对上面的代码做一点简单的改造,如果用户注册了,我们将网页重定向到首页。
from flask import Flask,redirect,url_for
app = Flask(__name__)
@app.route('/')
def index():
login_url = url_for('login')
return redirect(login_url)
return '这是首页'
@app.route('/login/')
def login():
return '欢迎登录'
@app.route('/message/<a_login>/')
def message(a_login):
if a_login=='1':
return '欢迎查看资料信息'
else:
return redirect(url_for('login'))
推荐使用url_for() 生成 URL,因为这个函数使用URL 映射生成 URL,从而保证URL 和定义的路由兼容,而且修改路由名字后依然可用。url_for()函数的第一个且唯一必须指定的参数是端点名,即路由的内部名字。 默认情况下,路由的端点是相应视图函数的名字。