隐藏用Python编写的电子邮件模板系统的实现细节

kol*_*rie 0 python email formatting templates

我正在编写一个应用程序,其中一个功能是允许用户使用Markdown语法编写电子邮件模板.

除格式化外,用户必须能够使用占位符来处理在运行时被替换的几个变量.

这个目前的工作方式非常简单:模板有Pythonic%(var)的占位符,我在应用Markdown2格式之前用字典替换它们.

事实证明,这个系统的最终用户将是一个精通技术的用户,我不想让每个人都明白它是用Python编写的.

这不是我不喜欢Python ......我实际上认为Python是完成这项工作的完美工具,我只是不想向用户公开它(即使它是用Java编写的,也希望相同,Perl ,Ruby或其他任何东西).

因此,我想问一下您认为哪些是为用户公开占位符的最佳方式的见解:

  1. 你认为最好的占位符格式是什么(想象为$ {var},$(var)或#{var})?

  2. 替换这些占位符的最佳方法是什么?

我使用正则表达式来改变 - 例如 - $ {var}到%(var)s然后应用常规的Python模板替换,但我不确定这是最好的方法.

如果你这样做,如果你能指出我那个正则表达式的草稿,那将是非常好的.

谢谢!

更新:用户指出使用完整的模板系统,但我认为这可能不值得,因为我需要的是占位符替换:我不会有循环或类似的东西.

最后更新:我此时选择不使用任何模板引擎.我选择使用更简单的string.Template方法(正如hyperboreean的评论所指出的那样).事实是,我不喜欢选择解决方案,因为将来某个时候可能需要解决方案.我将把所有这些建议保留在我的袖子上,如果在应用程序的生命周期中明确需要它们提供的一个或多个功能,我将重新审视这个想法.现在,我真的觉得这太过分了.拥有完整的模板,最终用户可以根据自己的需要进行编辑,至少在我看来,更多的麻烦而不是受益.尽管如此,感觉更好的是我没有意识到我没有沿着这条道路前进的原因,而只是没有研究任何东西并选择它.

非常感谢所有的输入.

S.L*_*ott 6

使用真实的模板工具:makojinja.不要自己动手.不值得.