1.关于redirect和url_for先举个例子:
(1).redirect:
#重定向 302
#redirect:重定向URL
#url_for:重定向函数
from flask import Flask,redirect,url_for
app=Flask(__name__)
#重定向方式一
@app.route('/index')
def index():
#这样打开http://127.0.0.1:5000/index之后就跳转到百度页面了
return redirect('https://www.baidu.com')
if __name__=='__main__':
print('Pycharm')
app.run(debug=True)
浏览器中输入:http://127.0.0.1:5000/index 运行结果:跳转到百度页面了。
(2).关于url_for:
#重定向 302
#redirect:重定向URL
#url_for:重定向函数
from flask import Flask,redirect,url_for
app=Flask(__name__)
#重定向方式二
@app.route('/bd')
def index_copy():
name='tom'
return url_for('hello',name=name)
@app.route('/<string:name>')
def hello(name):
# return redirect('https://www.baidu.com')
return 'mylist_'+name
# return 'https://www.baidu.com'
if __name__=='__main__':
print('Pycharm')
app.run(debug=True)
浏览器中输入:http://127.0.0.1:5000/bd 运行结果: 以上结果应该不是我们想要的,我们想要的结果应该是:mylist_tom 所以我们应该这样做:因为url_for只是定向到这个函数,而redirect则是定向到url。
运行结果: 再举一个例子:
#重定向 302
#redirect:重定向URL
#url_for:重定向函数
from flask import Flask,redirect,url_for
app=Flask(__name__)
#重定向方式二
@app.route('/bd')
def index_copy():
name='tom'
return redirect(url_for('hello'))
@app.route('/')
def hello():
return redirect('https://www.baidu.com')
if __name__=='__main__':
print('Pycharm')
app.run(debug=True)
index_copy函数定向到hello函数,因为在hello函数使用redirect定向到百度,所以最后的结果是定向到百度:
|