将Python代码嵌入为预处理器PHP样式

Chr*_*ris 2 python

我要回到一个旧的项目,在那里我为Essence添加了预处理器功能,我意识到我之前编写域特定语言和相关词法分析器/解析器的解决方案是过度的.

相反,我只需要能够将动态语言代码嵌入到文件中,在运行时隔离它,eval并插入结果.换句话说,非常类似于将动态代码插入HTML的PHP​​模型.我宁愿不使用PHP,因为Python作为更大项目(IronPython或Jython)的一部分更容易分发

所以问题是,如何最好地实现以下内容:

<code>Python goes here</code>
Lots of essence <code>Python</code> prime code goes here
Run Code Online (Sandbox Code Playgroud)

我不想改变Essence文件的结构(如果我删除所有代码块,剩下的一切应该能够在语法上正确.它需要能够插入文本代替像PHP这样的代码块.

最后安全方面我并不担心代码注入,因为用户自己选择要执行的文件虽然如果一个模型比另一个模型有安全优势而没有额外的成本显然是好的.

提前干杯

Mik*_*cic 6

你最好的选择是使用已制作的(和经过测试的)模板引擎之一.我使用的两个大的是MakoCheetah.它们允许您在页面中嵌入代码,并且主要用作MVC架构中的View.

如果您觉得使用其中一个引擎对您的项目来说太过分了,那么这里有一个关于如何自己实现基本模板的小教程.请记住,需要修改示例以满足您的特定项目/需求.