Я пытаюсь использовать jinja2 для рендеринга объекта, подобного этому:
{
"template": "It was the {{foo}} of times, it was the {{bar}} of times.",
"params": {
"foo" : "best"
"bar" : "worst"
},
"styling": {
"params": {
"foo": {
"classes": ["my_css_class_A"],
}
"bar": {
"classes": ["my_css_class_B"],
}
}
}
}
к этому:
It was the <span class="my_css_class_A">best</span> of times, it was the <span class="my_css_class_B">worst</span> of times.
Есть ли элегантный способ сделать это в шаблоне jinjaИли мне нужно написать свои собственные функции Python?
История вопроса, которая может / не может быть полезна: Ранее я использовал шаблоны строк Python для рендеринга таких объектов:
my_bullet_point = {
"template": "It was the {{foo}} of times, it was the {{bar}} of times.",
"params": {
"foo" : "best"
"bar" : "worst"
},
}
Строка, которая отображает (в пределах большего шаблона jinja), выглядела следующим образом:
<li>{{ my_bullet_point | render_template }}</li>
Где render_template:
from string import Template as pTemplate
def render_template(template):
return pTemplate(template["template"]).substitute(template["params"])
Теперь мне нужно добавитьстиль и до сих пор рендеринг в дзиндзя.