我使用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)
而不是硬编码路径?
从烧瓶文件,
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)
选项启用重定向