相关疑难解决方法(0)

在Ansible/Jinja2中设置var的case语句

我正在使用Ansible和Jinja2模板,这是一个我无法在Ansible的文档中找到解决方案或浏览Jinja2示例的场景.这是我想在Ansible中实现的逻辑:

if {{ existing_ansible_var }} == "string1"
  new_ansible_var = "a"
else if {{ existing_ansible_var }} == "string2"
  new_ansible_var = "b"
<...>
else
  new_ansible_var = ""
Run Code Online (Sandbox Code Playgroud)

我可以通过组合几种技术来实现这一点,这里的变量赋值:在jinja中设置变量,条件比较在这里:http://jinja.pocoo.org/docs/dev/templates/#if-expression,以及默认值在此过滤:https://docs.ansible.com/playbooks_filters.html#defaulting-undefined-variables,

......但我觉得这太过分了.有更简单的方法吗?

jinja2 ansible ansible-playbook

14
推荐指数
2
解决办法
3万
查看次数

Jinja表达式中的参考模板变量

我有一个像这样定义的路线:

@app.route('/magic/<filename>')
def moremagic(filename):
    pass
Run Code Online (Sandbox Code Playgroud)

现在在模板中我想用url_for()这样的方式调用该路由:

<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
Run Code Online (Sandbox Code Playgroud)

我试过了:

<a href="{{ url_for('/magic', filename={{ name }}) }}">Click to see magic happen</a>
Run Code Online (Sandbox Code Playgroud)

那扔了一个 jinja2.TemplateSyntaxError: expected token ':' got }

任何人都可以建议如何{{ name }}将模板中出现的内容输入到url_for()所以当我点击时我调用正确的app.route

python jinja2 flask

9
推荐指数
1
解决办法
1万
查看次数

在烧瓶模板的子串

我有一个循环来显示烧瓶模板中的列表内容,但我不想显示元素的第一个字符,这样在python中工作但不在烧瓶中

{%for file in files%}
        {% f= file['path'] %}
        <p> {{ f[1:] }}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

TemplateSyntaxError: Encountered unknown tag 'f'. Jinja was looking for the following tags: 'endfor' or 'else'. The innermost block that needs to be closed is 'for'.
Run Code Online (Sandbox Code Playgroud)

python flask

2
推荐指数
1
解决办法
1808
查看次数

标签 统计

flask ×2

jinja2 ×2

python ×2

ansible ×1

ansible-playbook ×1