我正在编写一个允许用户使用模板配置输出的应用程序。例如:
变量:
name = "BoppreH"
language = "Python"
模板:
My name is {name} and I like {language}.
输出:
My name is BoppreH and I like Python.
这适用于简单数据,如字符串和数字,但我找不到列表的良好语法,更具体地说是它们的分隔符。
fruits = ["banana", "apple", "watermelon"]
I like {???}.
I like banana, apple, watermelon.
在这种情况下,所需的分隔符是逗号,但用户如何指定?是否有一些具有此功能的模板格式?
我更关心的是使语法易于理解,无论语言或库如何。
答案 0 :(得分:1)
实现过滤器,并要求将它们用于非标量类型。
I like {fruits|join:", "}.
答案 1 :(得分:0)
通常,列表包含未知数量的成员,有时还包含自己的变量/占位符。一个例子可能是列出一个人的姓名及其电话号码。所需的输出可能如下所示:
John Doe
555-1212
555-1234
在支持此功能的模板系统中,您需要两种类型的变量:一种指定值的占位符(如您现在使用的花括号),另一种表示开头和结尾名单。所以,像这样:
{name}
{{phone_numbers}}{phone}{{/phone_numbers}}
您的值数组可能如下所示:
values = [姓名:“John Doe”,电话号码:[电话:“555-1212”,电话:“555-1234”]]
“phone_numbers”数组中的每个值都会创建{{phone_numbers}}和{{/ phone_numbers}}之间存在的所有内容的新实例,并将值包含在这两个“标记”中。