flask response跳转页面

flask返回跳转页面有两种方式

1、redirect()

from flask import Flask
from flask import make_response, request, render_template,redirect,url_for
import setting,json

app = Flask(__name__)
app.config.from_object(setting)
@app.route('/')
def index():
return render_template("index.html")

users=[]
@app.route('/register',methods = ["Post","Get"])
def register():
if request.method == "POST":
username = request.form.get("username")
password = request.form.get("password")
repassword = request.form.get("repassword")
if password == repassword:
user = {"username":username,"password":password}
users.append(user)
print(users)
return redirect('/') #两次响应 1、302 + location:/ 2、根据location返回需要的值
else:
return '密码不一致'
else:
return render_template("register.html")
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)

2、url_for() 通过endpoing在route路由中设置别名来进行跳转

from flask import Flask
from flask import make_response, request, render_template,redirect,url_for
import setting,json

app = Flask(__name__)
app.config.from_object(setting)

@app.route('/',endpoint='index')
def index():
    return render_template("index.html")

users=[]
@app.route('/register',methods = ["Post","Get"])
def register():
    if request.method == "POST":
        username = request.form.get("username")
        password = request.form.get("password")
        repassword = request.form.get("repassword")
        if password == repassword:
            user = {"username":username,"password":password}
            users.append(user)
            print(users)
            return redirect(url_for('index')) # url_for
        else:
            return '密码不一致'
    else:
        return render_template("register.html")

@app.route('/test')
def test():
    url = url_for('index')  #路径反向解析
    print(url) #打印出来是'/'
    return 'test'
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000)
原文地址:https://www.cnblogs.com/fat-girl-spring/p/15243074.html