为什么要使用`url_for`?

时间:2013-07-02 21:27:40

标签: python flask application-design

我使用Flask编写Web应用程序,我想知道使用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>

而不是对路径进行硬编码?

1 个答案:

答案 0 :(得分:6)

来自flask documentation

  

flask.url_for(端点,**值)

     

使用提供的方法生成指向给定端点的URL。

     

目标端点未知的变量参数是   附加到生成的URL作为查询参数。如果是a的值   查询参数为None,跳过整个对。如果是蓝图   处于活动状态,您可以快捷方式引用相同的蓝图   在本地端点前加一个点(。)。

     

这将引用当前蓝图的本地索引函数:

     

url_for(&#39;的.index&#39)

现在,您可以使用与端点进行反向匹配的url_for,而不是指定静态URL到达端点。

当您拥有可能要在运行时指定的参数时,它尤其有用。

示例

{{ url_for('static', filename='css/main.css') }}

您可以在运行时动态计算filename='...')

进一步扩展,

external=True 

选项启用重定向