【问题标题】:Jinja2 template find and replace string with new formatJinja2 模板用新格式查找和替换字符串
【发布时间】:2020-08-20 05:50:01
【问题描述】:

我有一个变量,其值为FileSystem,我想在我的模板中将其打印为file_system
注意我在这里做两件事:
1. 如果我的字符串的第一个字母是大写字母,那么我将其转换为小写
2. 如果我的任何其他字母大写,那么我将其替换为下划线,后跟其较低的字符串格式。
另一个例子是将StackOverFlow 转换为stack_over_flow 我怎样才能完成这项工作?

【问题讨论】:

    标签: python python-2.7 templates django-templates jinja2


    【解决方案1】:

    您可以编写一个自定义 jinja 过滤器,将您的变量作为输入,并允许您应用所需的转换。

    引用自官方 jinja 帮助:

    自定义过滤器只是常规的 Python 函数,它们将过滤器的左侧作为第一个参数,并将传递给过滤器的参数作为额外参数或关键字参数。

    jinja help section for custom filters

    例子:

    def convert_to_snakecase(value):
        # convert your value here (lower case first letter + snake case)
        return formatted_value
    

    注册您的自定义过滤器:

    app.jinja_env.filters['convert_to_snakecase'] = convert_to_snakecase
    

    在模板中调用你的过滤器:

    {{ my_variable|convert_to_snakecase }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2011-08-22
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多