gpt4 book ai didi

flask - 与Jinja2/Flask中的'startswith'类似的方法

转载 作者:行者123 更新时间:2023-12-03 15:26:11 27 4
gpt4 key购买 nike

我正在寻找类似于python的startswith的方法/方式。
我想做的是链接表中一些以“ i-”开头的字段。

我的步骤:


我创建了过滤器,该过滤器返回True / False:

@app.template_filter('startswith')
def starts_with(field):
if field.startswith("i-"):
return True
return False



然后将其链接到模板:

{% for field in row %}
{% if {{ field | startswith }} %}
<td><a href="{{ url_for('munin') }}">{{ field | table_field | safe }}</a></td>
{% else %}
<td>{{ field | table_field | safe}}</td>
{% endif %}
{% endfor %}


不幸的是,它不起作用。

第二步。我没有过滤器,但是在模板中

{% for field in row %}
{% if field[:2] == 'i-' %}
<td><a href="{{ url_for('munin') }}">{{ field | table_field | safe }}</a></td>
{% else %}
<td>{{ field | table_field | safe}}</td>
{% endif %}
{% endfor %}


可行,但是向该模板发送不同的数据,并且仅在这种情况下有效。我在想[:2]可能会有点问题。

因此,我尝试编写过滤器,或者也许我在文档中跳过了一些方法。

最佳答案

表达式{% if {{ field | startswith }} %}不起作用,因为您不能在彼此之间嵌套块。您可能可以使用{% if (field|startswith) %}逃脱,但是使用custom test而不是过滤器将是更好的解决方案。

就像是

def is_link_field(field):
return field.startswith("i-"):

environment.tests['link_field'] = is_link_field


然后在模板中,您可以编写 {% if field is link_field %}

关于flask - 与Jinja2/Flask中的'startswith'类似的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346000/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com