为什么要使用`url_for`?

not*_*you 4 python flask

我使用Flask编写Web应用程序,我想知道使用url_for模板和应用程序代码生成链接的原因.

这样做可以获得什么:

<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}">
Run Code Online (Sandbox Code Playgroud)

还有这个:

<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>
Run Code Online (Sandbox Code Playgroud)

而不是硬编码路径?

kar*_*ikr 7

烧瓶文件,

flask.url_for(端点,**值)

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

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

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

url_for( '索引')

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

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

{{ url_for('static', filename='css/main.css') }}
Run Code Online (Sandbox Code Playgroud)

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

进一步扩展,

external=True 
Run Code Online (Sandbox Code Playgroud)

选项启用重定向