为什么要使用Flask的url_for?
我想知道url_for
用于在模板和应用程序代码中生成链接的原因。
通过这样做,我可以获得什么:
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}">
和这个:
<ul>
<li><a href="{{ url_for('index') }}">Home</a></li>
<li><a href="{{ url_for('about') }}">About Us</a></li>
<li><a href="{{ url_for('contact') }}">Contact</a></li>
</ul>
而不是硬编码路径?
-
从Flask的文档中,
flask.url_for(endpoint, **values)
使用提供的方法生成指向给定端点的URL。
目标端点未知的变量参数将作为查询参数附加到生成的URL。如果查询参数的值是
None
,则将跳过整个对。如果蓝图处于活动状态,则可以通过在本地端点前面加点(.
)来快捷引用同一蓝图。现在,您无需使用静态网址即可到达端点,而是可以使用
url_for
它对端点进行反向匹配。当您有可能要在运行时指定的参数时,它特别有用。{{ url_for('events', user_id=user.id, year=2013) }} /events/1388224/2013
生成的路径始终是绝对路径(以“ /”开头),因此无论当前URL如何,它们都可以工作。它们还考虑了是否将应用程序安装在前缀而不是根目录(例如“ / myapp
/ events / 1/2013”)。该
_external=True
参数可用于生成带有服务器名称的URL,以便可以在外部(例如电子邮件中)使用它们。View your events: {{ url_for("events", user_id=user.id, year=2013, _external=True) }}