类似于jja2/flask中的';以';开头的方法 [英] Method similar to 'startswith' in Jinja2/Flask
本文介绍了类似于jja2/flask中的';以';开头的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找类似于Python的开头的方法/方式。 我想做的是链接表中以"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 %}
这篇关于类似于jja2/flask中的';以';开头的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文