我们已经知道,知道了url就可以找到对应的视图函数,那么现在问题来了,如果我们知道了视图函数,要怎么找到url呢?这时候我们就需要url_for函数了。 # coding: utf-8
from flask import Flask, url_for import flask
app = Flask(__name__) # type: Flask app.debug = True
# 根目录 @app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/login/') def login():
print url_for('hello_world') return 'success'
if __name__ == '__main__':
app.run()
运行上面代码: 可以看到控制台打印出了hello_world函数的url。 当我们讲了模板以后,经常会遇到a标签比如<a href=''> 我们都知道href里面放的是一个链接,试想现在我们判断用户是否登录成功,如果登录成功就跳转到p1页面,登录失败就跳转到p2页面,那么我们一般是不会再href里直接贴p1页面的url的,因为一旦p1页面地址改变,那么贴的url就会失效,试想你那么多代码,怎么可能记得住p1的url都在哪里用了呢?这时候就可以看到url_for的好处了,就是说我们会在href里放url_for我们需要反转的函数。 再看一个例子: # coding: utf-8
from flask import Flask, url_for import flask
app = Flask(__name__) # type: Flask app.debug = True
# 根目录 @app.route('/') def hello_world():
return 'Hello World!'
@app.route('/login/') def login():
return url_for('hello_world')
@app.route('/list/') def mylist():
return url_for('login')
if __name__ == '__main__':
app.run()
这时候进入http://127.0.0.1:5000/list/ 页面,就可以看到login的url了:
|