作用:
t通过重定向,实现从一个视图函数跳转到另一个视图函数的操作
导入重定向
from flask import redirect,url_for
说明
重定向 参数为要跳转的路由地址
2.url_for 通过视图函数,动态生成路由地址
3.组合使用和django中的redirect(reverse())一个意思
redirect(url_for(endpoint,**values))
实例:
要跳转的视图函数
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '无参路由'
@app.route('/arg/<arg1>')
def arg(arg1):
return 'arg1的值为%s' % arg1
@app.route('/args/<args1>/<args2>/')
def args(args1,args2):
return 'args1的值为{} args2的值为{}'.format(args1,args2)
重定向的实例代码
@app.route('/redirect/')
def myRedirect():
return redirect('/') # 重定向到无参路由
return redirect('/arg/zhangsan/') # 重定向到一个参数的路由地址
return redirect('/arg/zhangsan/18/')# 重定向到多个参数的路由地址
return url_for('index') # 输出反向构造出index的路由地址
return url_for('arg',arg1='zhangsan') # /arg/zhangsan/
return url_for('args',args1='zhangsan',arg2=18) # /args/zhangsan/18
return url_for('index') # 访问一个不存在的路由
# 报错:Could not build url for endpoint 'indexx'. Did you mean 'index' instead?
return url_for('args') #Could not build url for endpoint 'args'. Did you forget to specify values ['arg1', 'arg2']?
return redirect(url_for('index')) # 反向构造出路由定制重定向
注意:
如果给定的视图函数不存在,或者视图函数有参没有传,则构造失败(报错)