我应该使用真子为模板?
-
21-09-2019 - |
题
我一直在考虑一个模板解决方案,虽然我的选择是真子和元史之间。我发现在元史有点难看模板化,所以我换档更加朝真子。
我去了好奇:什么是如此的事实好事,马可允许嵌入Python代码?它是如何方便的平均乔?
不会没有具有嵌入Python代码模板化JUST足矣?
解决方案
由于灰鲭首页指出,真子的优势是相当明显的:速度飞快,瞬间熟悉的人谁是方便与Python在两个语法和特性方面。
元史选择的,而不是超前-的时间Python代码生成“解释”(根据其 FAQ 一>,那是错误信息的清晰度)和“公平”的方式进行的Python(例如,通过使用XPath进行选择,XInclude的,而不是继承等),所以它可能是更自然的,谁知道没有Python的,但很能干的人用XML。
那么,什么是你的“观众”?如果Python程序员,我建议真子(速度和熟悉);如果XML专家是与Python不舒服,元史可能是更好的选择(对于方法和更接近的匹配,以XML培养物“在Python臂的长度”)。
您提到的“普通人”,但乔不知道Python和XPath是一个深暗色的神秘给他;如果这真的是你的观众,其他模板系统,如Django的实际上可能是更好的选择(帮助他避免越来越麻烦; - )。
其他提示
不会没有具有嵌入Python代码模板化JUST足矣?
只有当你的模板语言有足够的逻辑功能,它本质上是在本身的脚本语言。在这一点,你还不如已经使用了Python。
更复杂的网站往往需要复杂的表示逻辑和不平凡的模板结构,如在不同的地方/页和递归树重复的部分。这是没有乐趣,如果你的模板语言捆绑双手在背后,因为它需要宗教的立场,即“在模板代码是坏的。”
然后你刚刚结束了在你的Python业务逻辑,这是展示和应用逻辑的糟糕混合比,你不得不开始写演讲辅助功能。即取电离你而去,因为他们不信任你高雅用它的语言是个馊主意。
这似乎有点宗教问题的。 Django模板采取强硬路线:在模板中没有代码。他们这样做是因为他们的历史,在商店中使用的系统中有那些谁写的代码和那些谁创建页面之间的明确分离。其他(也许你)不要让这样一个明显的区别,而且会感觉更舒服有布局和逻辑之间更灵活的线路。
这真的归结为口味的问题。
元史设想(读:施力,优化)用于产生XML文档的(即使它用于产生任何种类的文本文件的提供支持)。真子和Django模板被视为通用文本模板系统。 Evoque的还,但它使设计选择只有一个根本区别允许蟒蛇的表达式的模板即没有蟒语句。
这样做的一个重要的最终结果是,揽胜Evoque能够在沙箱中执行模板评估 - 即你可以安全地将不受信任的用户写访问模板的源代码 - 一个特点,几乎是不可能的模板引擎也允许的 Python语句的嵌入。哦,而不是直接的功能比较失去了任何,揽胜Evoque是在某些情况下,实际上比马可更快,而且它也运行在Python 3的
您可以约束自己的模板内不注入任何Python代码,除非它真的不得已把工作完成。我曾经面对Django的模板类似的问题,我不得不做一些认真的CSS体操,以显示我的内容。如果我能在模板中使用了一些Python代码,它会更好。