我想做一些与模板用途相反的事情:我想编写模板并以编程方式派生模板中存在的不同标签和占位符的表示,最终生成一个表单。
换句话说,当您通常拥有数据并用它填充模板时,我想要拥有模板并要求用户提供正确的数据来填充它。
示例(使用伪语法):Hello {{ name_of_entity only-in ['World', 'Universe', 'Stackoverflow'] }}!
有了它,我可以通过编程推导出我应该生成一个带有名为“name_of_entity”的 select 标签并具有 3 个 options(“World”、“Universe”、 '计算器')。
我研究了 Jinja2,似乎我可以使用它并扩展它来实现我的目标(即使它被设计成以另一种方式做事)。但是我仍然不确定在某些情况下我应该怎么做,例如:
- 如果我想表示
{{ weekday }}仅在['Mo', 'Tu', ...] 中有值
- 如果我想在模板中表示
{{ amount }}变量只接受整数...
Jinja 是实现这些目标的良好基础吗?如果是,您建议如何做到这一点?
请您参考如下方法:
我认为 Jinja 对构建它很有意义,特别是因为它包含一个完整的词法分析器和解析器。您可以利用这些来派生您自己的版本来满足您的需要。
