【发布时间】:2016-10-15 06:38:33
【问题描述】:
Jinja2 的一般工作流程是 params + Jinja2 模板 = 生成的文档。
from jinja2 import Template
t = Template("Hello {{ something }}!")
t.render(something="World")
>>> u'Hello World!'
是否可以使用 Jinja2 模板对文档中的参数进行逆向工程?换句话说,我正在寻找以下内容:Jinja2 模板 + 生成的文档 = 参数。
from jinja2 import Template
t = Template("Hello {{ something }}!")
t.reverse("Hello World!")
>>> {"something" : "World"}
json 输出不是必需的,但它会很方便。
如果不是这样创建逻辑的好方法是什么?
上下文: 我使用 Jinja2 生成 Cisco Switch 配置文件,能够提取过去生成的文档将是一个不错的功能,我不想显示超过 1000 行的配置脚本,而只想列出参数。我知道可以通过将所有参数存储在一个简单的数据库中来解决它,但目前我没有设置数据库,如果可能的话我会避免它。
【问题讨论】:
-
@vrs 感谢您的快速回复,我已经看过这些帖子了。我已经用一些示例编辑了我的问题,这可能有助于理解我的具体案例。
-
我认为这通常是不可能的。你的用例是什么?
-
模板上的
diff和呈现的模板将显示替换。 -
我使用 Jinja2 生成 Cisco Switch 配置文件,能够提取过去生成的文档将是一个不错的功能,而不是显示 1000 多行配置脚本,我会喜欢只列出参数。我知道可以通过将所有参数存储在一个简单的数据库中来解决它,但目前我没有设置数据库,我会避免它。