flask之url_for()函数解析

官方文档

1.url_for()作用:

(1)给指定的函数构造 URL。
(2)访问静态文件(CSS / JavaScript 等)。 只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。

1.1给指定的函数构造 URL:

它接受函数名作为第一个参数,也接受 URL 规则中对应的变量作为参数。未知变量部分会添加到 URL 末尾作为查询参数。

from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index(): pass
 
@app.route('/login')
def login(): pass
 
@app.route('/user/<username>')
def profile(username): pass
 
with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
 
#将未知变量next添加到 URL 末尾作为查询参数
print(url_for('login', next='/'))
 
# 将 URL 规则中对应的变量 username 作为参数
print(url_for('profile', username='John Doe'))

output: 
/
/login
/login?next=/
/user/John%20Doe

1.2访问静态文件

url_for('static', filename='style.css')
这个文件应该存储在文件系统上的 static/style.css 。


2.选择构建URL而不直接在代码中拼URL的原因:

  1.  反向构建通常比硬编码的描述性更好。更重要的是,它允许你一次性修改 URL, 而不是到处边找边改。
  2. URL 构建会转义特殊字符和 Unicode 数据,免去你很多麻烦。
  3. 如果你的应用不位于 URL 的根路径(比如,在 /myapplication 下,而不是 / ), url_for() 会妥善处理这个问题。

3.url_for()构建url原理:

url_for() 使用endpoint ,通过反向机制构建URL路径 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕城南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值