何时在Python中使用模板引擎?

2024-04-27 14:18:05 发布

您现在位置:Python中文网/ 问答频道 /正文

作为Python的“新手”,而且主要有编写自动化系统管理相关任务的脚本的背景,我对在何处使用某些工具没有太多的了解。在

但我对培养在哪里使用特定工具/技术的直觉非常感兴趣。在

我看过很多关于模板引擎的介绍,包括zedshaw谈到在Lamson中使用Jinja2

所以我想我应该请社区给我一些建议,告诉我应该在哪里/什么时候考虑使用模板引擎,比如Jinja2GenshiMako,和co


Tags: 工具引擎脚本模板jinja2社区建议技术
3条回答

模板引擎使用模板以编程方式生成工件。模板指定工件的骨架,程序填充空白。这几乎可以用来生成任何东西,可以是HTML、某种脚本(例如:RPM规范文件)、稍后可以执行的Python代码等等

正如@mikem所说,模板有助于在适当的条件下生成任何形式的输出。基本上,我用Python编写的第一个有意义的东西是一个模板系统YAPTU,这是另外一个Python模板工具,那是8年前,在其他good这样的系统存在之前。。。不久之后,我有幸得到了不低于peternorvig的增强(见here),现在它在搜索引擎上有近2000次点击率;-)。在

今天的模板引擎在许多方面都要好得多(尽管大多数都非常专业,尤其是对于HTML输出),但是基本思想仍然是为什么要在Python代码中使用大量print语句和硬编码字符串,而在可编辑模板文件中更容易将字符串输出出来?如果你想(例如)有能力输出法语、英语或意大利语(这是YAPTU在一个紧张的周末黑客攻击的原始动机,因为我是第一次认识Python。。。!-),只需从正确的目录(在那里文本被适当地翻译)得到你的模板将使一切变得更加容易!!!在

基本上,我认为模板系统很可能不是一个好主意,无论何时输出文本内容。例如,我已经使用YAPTU或其改编来在JSON、XML和人类可读(实际上是HTML)输出之间平滑地切换;在当今这个时代,一个真正优秀的模板系统实际上应该能够超越“text-ish”的限制,以protobuf或其他二进制序列化格式输出。在

哪种模板系统最好完全取决于你的具体情况,无论如何,我会研究(并试验)其中一些。有些是为UI设计人员(不会编程)编辑它们的情况而设计的,另一些只供程序员使用;许多是专门用于HTML的,有些是XML的,其他的则是更通用的;等等,但其中一些(或您自己的另一个!-)一定比一堆print好!-)在

简单地说,模板可以让您轻松地手工编写可读的文档,并添加非常简单的标记来标识应该由变量替换的区域、应该重复的区域等

通常,模板语言只能执行基本的“模板逻辑”,也就是说,逻辑只足以影响文档的布局,但不足以影响输入到模板以填充文档的数据。在

相关问题 更多 >