flask第八篇——url_for【1】
我们已经知道,知道了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标签比如我们都知道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了:
关注微信公众号:自动化测试实战,查看清晰排版,更多内容