1.首先上flask的结构,这里故意使用各种命名。以便测试url_for和redirect
第一步:运行这串代码:
from flask import render_template ,Flask, url_for, redirect
app=Flask(__name__)
@app.route('/')
def hello_world():
print(url_for('index'))
return 'Hello World'
@app.route('/index/')
def index_func():
return 'index'
if __name__ == '__main__':
app.run()
会出现以下错误:
由此可见:url-for是用来匹配路由下的函数的。
2.将代码修改正确:
可以看到打印的结果为路由地址;
此时网页出现的结果为:
3.加入参数。
4.
这样一来就可以直接在redirect中写路由的地址即可
# -*- coding: utf-8 -*-
# @Time : 2020/3/13 17:09
# @Author : 结尾!!
# @FileName: app.py
# @Software: PyCharm
from flask import render_template ,Flask, url_for, redirect
app=Flask(__name__)
# @app.route('/')
# def hello_world():
# print(url_for('index_func')) #
# return 'Hello World'
@app.route('/')
def hello_world():
print(url_for('hello',name='jie')) #/index/
return redirect(url_for('hello',name='jie'))
@app.route('/<name>/')
def hello(name):
return 'Hello %s' % name
@app.route('/index/')
def index_func():
return 'index'
@app.route('/index_2/')
def index_func2():
return redirect('/index') #还可以使用路由的路劲。
if __name__ == '__main__':
app.run()