Jinja2 模板用新格式查找和替换字符串
Posted
技术标签:
【中文标题】Jinja2 模板用新格式查找和替换字符串【英文标题】:Jinja2 template find and replace string with new format 【发布时间】:2020-08-20 05:50:01 【问题描述】:我有一个变量,其值为FileSystem
,我想在我的模板中将其打印为file_system
。 注意我在这里做两件事:
1. 如果我的字符串的第一个字母是大写字母,那么我将其转换为小写
2. 如果我的任何其他字母大写,那么我将其替换为下划线,后跟其较低的字符串格式。
另一个例子是将***
转换为stack_over_flow
我怎样才能完成这项工作?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Jinja2 模板用新格式查找和替换字符串的主要内容,如果未能解决你的问题,请参考以下文章