我们之前是通过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