Flask/Jinja 中是否有任何内置方法可以使用 URL 创建链接?

问题描述 投票:0回答:1

举个例子,在 CommonMark 中,如果我输入:

http://example.com

然后这将被转换为:

<a href="http://example.com">http://example.com</a>

此标签具有 2 倍的

http://example.com
,这是绝对必要的 - 一个用于呈现为
<a>
标签的正文,另一个作为
href

在 Jinja/Flask 中,这可以通过以下方式完成:

<a href="{{ url_for('something') }}">{{ url_for('something') }}</a>

有效,但我忍不住觉得应该有更好的方法。我想我可以做一些事情,比如编写自己的函数并将其注入到 Jinja 上下文中,这样我就可以做类似的事情:

a(url_for('example.page'), _self=True)

有更好的办法吗?

python flask jinja2
1个回答
0
投票

然后将外部Python函数注入jinja2,您可以简单地定义一个jinja2宏来为您呈现链接。

{% macro render_link(url) %}
    <a href="{{ url }}">{{ url }}</a>
{% endmacro %}

然后将宏导入到您打算使用它的模板中并调用它。

{{ render_link(url_for('something')) }}
© www.soinside.com 2019 - 2024. All rights reserved.