我正在使用Jinja2模板引擎(+pelican)。
我有一个字符串,其内容为“a 1”,我正在寻找一种方法来使用空格作为分隔符将该字符串分为两部分。
所以最终我要得到的结果是一个变量,它包含了两个值,以数组的形式呈现。例如,str [0] 的值为“a”,而str [1] 的值为“1”。
提前致谢。
调用字符串的split方法应该就可以解决问题:
"a 1".split()
我也遇到了同样的问题,并且没有找到有用的东西,所以我只是创建了一个自定义过滤器:
def split_space(string):
return string.strip().split()
将其添加到过滤器列表中(使用Flask):
app = Flask(__name__)
def split_space(string):
return string.strip().split()
#some code here
if __name__ == '__main__':
app.jinja_env.filters['split_space'] = split_space
app.run()
然后在模板中将其用作这样的内容:
{% if "string" in element|split_space %} ... {% endif %}
我的解决方案已在iPython中进行了测试。
In [1]: from jinja2 import Template
In [2]: Template("{{s.split('-')}}").render(s='a-bad-string')
Out[2]: u"['a', 'bad', 'string']"
# my_variable = 'a 1`
{ my_variable | split | join(' and ') } #=> a and 1
我建议采用类似以下方式:
str = "a 1 b 2 c 3"
val = atr.split()
val1 = atr.split()[2]
val1
中。你也可以使用装饰器来实现这个功能:
from flask import Flask
app = Flask(__name__)
@app.template_filter('split_space')
def split_space_filter(s):
return s.strip().split()
if __name__ == '__main__':
app.run()
{% for instance in instances %} {% set route_name=instance.split(' ')[1] %} BalancerMember http://{{ instance }} route={{ route_name }} {% endfor %}
- naoko