0

我是 C# 和 ASP.NET MVC 开发人员。我已经完成了一些 Python 控制台应用程序,但是对于将 Python 用于 Web 应用程序我还是新手。我读了很多关于 Python 服务器和模板引擎的文章。

但我担心:

  • 哪些模板引擎适合哪些 Python 服务器/Python Web 框架?还是应该适合?
  • 模板引擎中可能存在安全问题吗?或者我可以选择任何我喜欢语法的人。
  • 任何模板引擎都可以将数据(我的模型、orm 模型)与控制器及其本身集成吗?这种集成会导致任何安全性、内存问题吗?
  • 对任何模板引擎使用 Python 2.x 或 3.x 是否重要?

我知道有jinja2pytenjin (似乎很快pyrazor),。由于我的 ASP.NET MVC 背景,我已经尝试了所有方法,并且对 pyRazor 感到非常满意。

在我担心之后的最后一个问题:

  • 我应该使用哪些模板引擎?
  • 用 Tornado 开始开发 的最佳开发环境(python web 框架、模板引擎)是什么?

我知道我已经问了很多问题,但是在我投入到实际项目的开发中之前我必须小心。

编辑评论:好的,我觉得我需要更具体地说明我在寻找什么。由于许多开发人员在 python web 编程中需要(至少来自其他平台),我需要弄清楚我有哪些开发选项。(IDE、模板引擎、Web 服务器等)以及如何以适当的方式将它们结合起来,以减少开发时间并提高生产力而不破坏安全性。

更新 1:我认为我们,来自 VS 和 ASP.NET 世界的开发人员,习惯于将所有东西放在一个盒子里,为开发做好准备。当因为项目需要而使用另一种技术时,我们(至少我)变得偏执。因为我们需要让一切和谐相处。很明显,为 .NET 项目使用 IIS、.NET 和 VS(具有所有高级功能)。

好吧,经过这么多搜索和调查,我决定使用 PyCharm 作为 Django 的 IDE。我希望有一天 PyCharm 能够像支持 Django 一样支持 web2py。

好的,服务器呢?我会让 nginx 或 cherokee 为我工作。

好的,模板引擎呢?我将使用默认的 Django 模板引擎。(我不太喜欢 pyRazor)但是这种方式会更容易找到帮助或请求更多功能。在后期,我可以再试一次 jinja2(在 PyCharm 中你可以更改要在 Django 中使用的模板引擎)。

4

1 回答 1

4

没有终极模板引擎或网络框架。例如,我喜欢flask、 Jinja2 和SQLAlchemy的组合。其他人更喜欢Django,它带来了 ORM 和模板引擎。其他人更喜欢mako(也是一个模板引擎)。试试看,看看你最喜欢什么。

当然,您的模板中可能存在安全问题,例如XSS Attacks,但这不太可能,Jinja2 默认启用例如自动转义,因此您可以输入任何您想要的内容,它会自动转义。

是的,您可以将您的 ORM 模型与模板引擎集成(您可以将db-instanceand 模型传递给模板),但我不会这样做,只是因为在您的路线中这样做更容易。如果您集成它,则不会有更多的安全/内存问题,就像您在“正常”代码中那样。

Python 版本无关紧要(只要引擎支持它),但我会使用 Python 2.7,因为它带来了 Python 3 的一些很酷的特性,并且它有更多可用的库(并非所有东西都移植到 Python 3) .

于 2012-08-17T22:27:47.110 回答