【问题标题】:How to convert string to uppercase / lowercase in Jinja2?如何在 Jinja2 中将字符串转换为大写/小写?
【发布时间】:2014-06-05 09:29:05
【问题描述】:

我正在尝试将我正在处理的 Jinja 模板中的字符串转换为大写。

template documentation,我读到:

upper(s)
    Convert a value to uppercase.

所以我写了这段代码:

{% if student.department == "Academy" %}
    Academy
{% elif  upper(student.department) != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}

但我收到此错误:

UndefinedError: 'upper' is undefined

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

【问题讨论】:

  • 对于谷歌,小写的错误是:jinja2.exceptions.UndefinedError: 'lower' is undefined

标签: python jinja2


【解决方案1】:

过滤器与|filter syntax一起使用:

{% elif  student.department|upper != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}

或者你可以使用str.upper() method:

{% elif  student.department.upper() != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}

Jinja 语法是 Python-like,而不是真正的 Python。 :-)

【讨论】:

  • 类似地,student.department.lower() != "maths department" 是小写的
【解决方案2】:

你可以使用:像这样过滤

{% filter upper %}
    UPPERCASE
{% endfilter %}

【讨论】:

  • 但这不会让你比较结果;只插入结果。
【解决方案3】:

大写

{{ 'helLo WOrlD'|capitalize }}

输出

Hello world

大写

{{ 'helLo WOrlD'|upper }}

输出

HELLO WORLD

【讨论】:

    【解决方案4】:

    对于大写

    {{ 'helLo WOrlD'|capfirst }}
    

    大写

    {{ 'helLo WOrlD'|upper }}
    

    对于小写

    {{ 'helLo WOrlD'|lower }}
    

    对于标题

    {{ 'helLo WOrlD'|title }}
    

    对于只是

    {{ 'helLo WOrlD'|ljust }}
    

    对于只是

    {{ 'helLo WOrlD'|rjust }}
    

    对于换行

    {{ 'helLo WOrlD'|wrap }}
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2021-06-11
      • 1970-01-01
      • 2010-11-04
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 2022-01-19
      • 2012-07-08
      相关资源
      最近更新 更多