我是C#和ASP.NET MVC开发人员。我已经完成了一些Python控制台应用程序,但我不熟悉将Python用于Web应用程序。我读了很多关于Python服务器和模板引擎的内容。
但我担心:
我知道有jinja2
,pytenjin
(似乎非常快),pyrazor
。
由于我的ASP.NET MVC背景,我已经尝试了所有这些并且我对pyRazor非常满意。
我知道我问过这么多问题,但在深入开发实际项目之前我必须要小心。
关于评论的修改:好的,我觉得我需要更具体地了解我在寻找什么。正如许多开发人员在python Web编程中所需要的(至少来自其他平台),我需要弄清楚我有哪些开发选项。 (IDE,模板引擎,Web服务器等)以及如何以适当的方式组合它们以减少开发时间并提高生产力而不破坏安全性。
更新1:我认为我们VS和ASP.NET世界的开发人员习惯于将所有内容都放在开发框中。当涉及到因为项目需求而使用其他技术时,我们(至少我)变得偏执。因为我们需要把所有人放在和谐中。对.NET项目使用IIS,.NET和VS(具有所有高级功能)显而易见。
嗯,经过如此多的搜索和调查,我决定使用PyCharm作为Django的IDE。我希望有一天PyCharm支持web2py作为支持Django的方式。
好的,服务器怎么样?我会让nginx或切诺基为我工作。
好的,模板引擎怎么样?我将使用默认的Django模板引擎。(我不喜欢pyRazor)但这种方式更容易找到帮助或请求更多功能。在以后的阶段,我可以再试一次jinja2(在PyCharm中)你可以改变模板引擎在Django中使用。)
答案 0 :(得分:4)
没有终极模板引擎或网络框架。例如。我喜欢flask,Jinja2和SQLAlchemy的组合。其他人更喜欢Django,它带来了一个ORM和模板引擎。其他人更喜欢mako(也是模板引擎)。试试看,最了解你最喜欢的东西。
当然,您的模板中可能存在安全问题,例如: XSS Attacks,但这不太可能,Jinja2例如默认情况下启用autoescaping,因此您可以随意输入任何内容,并自动将其转义。
是的,您可以将您的ORM模型与模板引擎集成(您可以将db-instance
和模型传递给模板),但我不会这样做,因为它在您的路线中更容易。如果你对它进行集成,就不会有更多的安全/内存问题,就像你在“普通”代码中那样。
Python版本并不重要(只要引擎支持它),但我会使用Python 2.7,因为它带来了Python 3的一些很酷的功能,它有更多的库可用(并不是所有的东西都移植到Python 3)。