我们之前是通过url来找到对应的视图函数
/ => hello_world
那么url_for则是通过视图函数找到url
hello world => /
演示如下
#coding=utf-8
from flask import Flask
from flask import url_for app=Flask(__name__)
@app.route("/")
def hello_world():
return url_for('my_list') @app.route("/list/")
def my_list():
return "list page" if __name__ =='__main__':
app.run(host='127.0.0.1') # 运行,指定监听地址为127.0.0.1:8080
如果url带有参数的话,我们应该如下使用url_for
coding=utf-8
from flask import Flask
from flask import url_for app=Flask(__name__)
@app.route("/")
def hello_world():
return url_for('my_list',page_id=1)
@app.route("/list/<page_id>")
def my_list(page_id):
return "list page" if __name__ =='__main__':
app.run(host='127.0.0.1') # 运行,指定监听地址为127.0.0.1:8080
如果url只配置了一个参数,而url_for设置了多个
from flask import Flask
from flask import url_for app=Flask(__name__)
@app.route("/")
def hello_world():
return url_for('my_list',page_id=1,count=2)
@app.route("/list/<page_id>")
def my_list(page_id):
return "list page" if __name__ =='__main__':
app.run(host='127.0.0.1') # 运行,指定监听地址为127.0.0.1:8080
为什么要使用url_for呢?
当我们视图函数确定了,以后我们的url不管怎么变,只要通过url_for都能够正确地得到url,因为改变url的频率一般大于视图函数。
url_for会自动处理特殊的字符
坚持学习,提升~~up,up