使用Python构建Web应用程序

8
这是对我一周前提出的两个 问题的跟进。那时我正在构建一个基于AI的Web应用程序的原型,并想知道应该使用哪种语言。结论似乎是我应该选择类似Python的语言,然后将任何关键部分转换为更快的语言,如Java或C/C++。
这对我来说听起来不错,但现在我在想Python是否真的是构建Web应用程序的正确语言。我过去参与的大多数Web应用程序都是C/C++ CGI和php。我发现php更容易使用,因为它使得将用户界面链接到后端更加容易,并且也更符合我的逻辑思维。
我以前没有使用过Python,但我想知道的基本上是Python中的CGI编程有多容易?我是否需要回到在C/C++中的繁琐方式,其中您必须在模板中存储HTML代码,并让CGI读取并替换特殊代码以获得适当的值?还是可以像php一样将模板作为代码?

我可能在这里提出了一个非常无知的问题,对此我深感抱歉,但希望有人知道我的意思!我的总体问题是:用Python编写Web应用程序是一个好主意吗?和使用PHP一样容易吗?

4个回答

17

Python是一个很好的选择。

不过我会避免使用CGI模式 - 因为每次请求都需要启动解释器,这会带来很大的性能惩罚。大多数Python Web框架支持WSGI标准,可以通过多种方式连接到服务器,但大多数都是运行在某种长时间运行的进程中,Web服务器通过代理、FastCGI、SCGI等与其通信。

说到框架,Python世界里有很多框架可供选择,这既是好事也是坏事。虽然有许多优秀的选项,但对于新手来说可能会感到困惑。

如果你正在寻找一个预装了Web/DB/模板集成的东西,建议看看DjangoTurboGearsPylons。如果你想更多地控制各个组件,请查看CherryPyColubridweb.py

至于它是否像PHP一样“容易”,这是主观的。在Python Web编程世界中,通常鼓励将模板和应用程序逻辑分开,这可以使您的代码更容易维护。另一方面,在PHP文件中编写页面的所有代码也是“易用”的另一种定义。

祝你好运。


PHP比Python更容易快速开发出网站的前80%。但是,最后20%的工作会更加困难,而且维护也很糟糕。如果你在一开始就花时间用PHP(框架)做好它,那么所需的时间与使用Python web框架相同。 - Sam Corder

8
“在Python中进行CGI编程有多容易?”毫无疑问比C更容易。Python更容易是因为——简单地说——它比C更易于使用。首先最重要的是:没有内存分配和释放。除此之外,面向对象的编程模型也非常出色。
除了基本的语言简洁性之外,Python的WSGI标准比CGI标准容易得多。
然而,与全Python框架(TurboGears, CherryPy, Django等)的大大简化的世界相比,纯CGI则非常麻烦。
这些框架强制执行许多(必要的)结构。对于一个CGI程序员来说,开箱即用的体验是太难学了。确实如此。所有新事物都需要学习。然而,价值远远超过投资。
使用Django,您可以在几分钟内开始运行。 真的。 django-admin.py startproject,然后您就可以立即运行某些内容。 您确实需要设计您的URL,编写视图函数并设计页面模板。 所有这些都是工作。 但它比C中的CGI要少得多。
Django的架构比PHP更好,因为演示模板完全与处理分离。 当您想在Django框架上使用免费和不受限制的PHP样式时,这会导致一些困惑(请参见每当我在django模板中放置python代码时出现语法错误)。
链接用户界面到后端
Python前端(例如Django)使用Python视图函数。 这些视图函数可以包含任何Python代码。 如果必要,这包括从Python可调用的C编写的模块。
这意味着您可以使用Python友好的接口编译CLIPS模块。 它成为您的Python代码可以使用import语句获得的内容。
有时候,这种方式是不太有效的,因为您的Django页面正在等待CLIPS引擎完成。另一种选择是使用类似命名管道的东西。 您拥有基于CLIPS的应用程序,完全由C编写,从命名管道中读取。您的Django应用程序完全由Python编写,向该命名管道写入数据。由于您有两个独立的进程,因此通过这种方式很快就可以使用所有核心。

5
我建议使用Django,但考虑到您要求找一个"像PHP一样容易"的东西,那么您必须看看PSP(Python Server Pages)。 虽然Django是一个完整的网站框架,但PSP可以像PHP一样使用,而无需任何框架。

3

使用Python编写Web应用程序比使用PHP更容易,尤其是因为Python不是一种有缺陷的语言。

选择一个支持mod_wsgi的Web框架或者自己开发一个。一旦掌握了部署技巧,WSGI应用程序就非常容易部署。

如果需要模板,则genshi是我在Python中发现的最好的模板引擎,您可以按照自己的喜好使用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接