Flask/Jinja是否有内置方法生成URL自链接?
解决Jinja中重复调用url_for的内置方案
你可以用Jinja原生的变量赋值功能,只调用一次url_for后复用结果,完全不需要自定义函数:
方法一:使用set标签
直接把url_for的结果存入变量,后续在href属性和标签文本中引用该变量即可:
{% set target_url = url_for('something') %} <a href="{{ target_url }}">{{ target_url }}</a>
方法二:使用with块
如果希望变量仅在局部作用域生效,用with块包裹会更合适:
{% with target_url = url_for('something') %} <a href="{{ target_url }}">{{ target_url }}</a> {% endwith %}
这两种都是Jinja内置的方案,既避免了重复调用url_for,又无需额外注入自定义上下文函数,简洁且契合框架原生用法。
内容的提问来源于stack exchange,提问作者Wayne Werner
相关产品推荐
相关产品推荐

