相关疑难解决方法(0)

在jinja2模板中获取列表的长度

如何获取jinja2模板中列表中的元素数量?

例如,在Python中:

print(template.render(products=[???]))
Run Code Online (Sandbox Code Playgroud)

在jinja2

<span>You have {{what goes here?}} products</span>
Run Code Online (Sandbox Code Playgroud)

python jinja2

288
推荐指数
4
解决办法
21万
查看次数

在Jinja2中,如何测试变量是否未定义?

从Django转换,我习惯做这样的事情:

{% if not var1 %} {% endif %}
Run Code Online (Sandbox Code Playgroud)

如果我没有将var1放入上下文中,并使其工作.Jinja2给了我一个未定义的错误.是否有简单的说法{% if var1 == None %}或类似方式?

jinja2

166
推荐指数
6
解决办法
15万
查看次数

Ansible - 如果未定义变量,则使用默认值

users在我的角色里面定制了linux 创建.我需要让我的角色的用户自定义home_directory,group_name,name,password.

我想知道是否有更灵活的方法来应对默认值.

我知道下面的代码是可能的:

- name: Create default
  user:
    name: "default_name"
  when: my_variable is not defined

 - name: Create custom
  user:
    name: "{{my_variable}}"
  when: my_variable is defined
Run Code Online (Sandbox Code Playgroud)

但正如我所提到的,有很多可选变量,这会产生很多可能性.

是否有类似上面的代码?

user:
  name: "default_name", "{{my_variable}}"
Run Code Online (Sandbox Code Playgroud)

代码应该name="default_name"my_variable未定义时设置.

我可以设置所有变量defaults/main.yml并创建用户:

- name: Create user
  user:
    name: "{{my_variable}}"
Run Code Online (Sandbox Code Playgroud)

但是这些变量都在一个非常大的哈希中,并且哈希中有一些哈希不能作为默认值.

ansible ansible-2.x

81
推荐指数
6
解决办法
10万
查看次数

jinja2中字典的默认值(ansible)

jinja2使用过滤器'| default()'来处理未定义的变量.但它不适用于字典值.

如果D可能有或没有密钥foo(D [foo]),那么:

{{ D[foo]|default ('no foo') }}
Run Code Online (Sandbox Code Playgroud)

如果D未定义,将打印'no foo',但如果定义了D,则会导致错误('dict对象'没有属性'foo'),但D [foo]未定义.

有没有办法让字典项目默认?

jinja2 ansible

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

标签 统计

jinja2 ×3

ansible ×2

ansible-2.x ×1

python ×1