如何在Jinja2中将字符串转换为大写/小写?

Xar*_*Xar 43 python jinja2

我正在尝试将我正在使用的Jinja模板中的字符串转换为大写字母.

模板文档中,我读到:

upper(s)
    Convert a value to uppercase.
Run Code Online (Sandbox Code Playgroud)

所以我写了这段代码:

{% if student.departament == "Academy" %}
    Academy
{% elif  upper(student.department) != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

UndefinedError: 'upper' is undefined
Run Code Online (Sandbox Code Playgroud)

那么,如何在Jinja2中将字符串转换为大写?

Mar*_*ers 70

过滤器使用|filter语法:

{% elif  student.department|upper != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}
Run Code Online (Sandbox Code Playgroud)

或者你可以使用这个str.upper()方法:

{% elif  student.department.upper() != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}
Run Code Online (Sandbox Code Playgroud)

Jinja语法类似于 Python,而不是实际的Python.:-)

  • 类似地,`student.department.lower() != "maths department"` 做小写 (4认同)

Jam*_*yda 25

为大写

{{ 'helLo WOrlD'|capitalize }}
Run Code Online (Sandbox Code Playgroud)

输出

Hello world
Run Code Online (Sandbox Code Playgroud)

对于大写

{{ 'helLo WOrlD'|upper }}
Run Code Online (Sandbox Code Playgroud)

输出

HELLO WORLD
Run Code Online (Sandbox Code Playgroud)


Sub*_*Das 10

对于大写

{{ 'helLo WOrlD'|capfirst }}
Run Code Online (Sandbox Code Playgroud)

对于大写字母

{{ 'helLo WOrlD'|upper }}
Run Code Online (Sandbox Code Playgroud)

对于小写

{{ 'helLo WOrlD'|lower }}
Run Code Online (Sandbox Code Playgroud)

对于标题

{{ 'helLo WOrlD'|title }}
Run Code Online (Sandbox Code Playgroud)

对于ljust

{{ 'helLo WOrlD'|ljust }}
Run Code Online (Sandbox Code Playgroud)

对于正义

{{ 'helLo WOrlD'|rjust }}
Run Code Online (Sandbox Code Playgroud)

对于

{{ 'helLo WOrlD'|wrap }}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你