这是对two questions的跟进,我问了一周左右。这些的结果是我正在为网络构建基于AI的应用程序的原型,我想知道使用什么语言。结论似乎是我应该选择类似python的东西,然后将任何关键位转换为更快的东西,如Java或C / C ++。
这对我来说听起来不错,但我现在想知道python是否真的是用于构建Web应用程序的正确语言。我过去使用过的大多数Web应用程序都是C / C ++ CGI,然后是php。我发现php更容易使用,因为它将用户界面链接到后端变得更加容易,而且对我来说更具逻辑意义。
我之前没有使用过python,但我基本上想知道在python中CGI编程有多简单?我是否必须回到在C / C ++中执行此操作的繁琐方式,您必须在模板中存储HTML代码并让CGI读取它们并用适当的值替换特殊代码,或者是否可以使用模板 代码与php一样?
我可能在这里问一个非常无知的问题,为此我道歉,但希望有人会知道我在做什么!我的整体问题是:在python中编写Web应用程序是一个好主意,它是否像使用php一样简单?
答案 0 :(得分:17)
Python是一个不错的选择。
我会避免CGI模型 - 你会为每个请求的解释器启动付出很大的代价。大多数Python Web框架都支持the WSGI standard,并且可以通过多种方式连接到服务器,但大多数都存在于Web服务器与之通信的某种长期运行的进程中(通过代理,FastCGI,SCGI等)
说到框架,Python环境已经成熟。这既好又坏。有很多很好的选择,但对于新手来说这可能是令人生畏的。
如果您正在寻找通过网络/数据库/模板集成预先打包的内容,我建议您查看Django,TurboGears或Pylons。如果您想要更好地控制各个组件,请查看CherryPy,Colubrid或web.py。
至于它是否像“PHP一样容易”,这是主观的。通常鼓励在Python Web编程世界中将模板和应用程序逻辑分开,这可以使您的生活更容易。另一方面,能够在PHP文件中编写页面的所有代码是另一种“简单”的定义。
祝你好运。答案 1 :(得分:8)
“python中的CGI编程有多容易?”比C更容易,这是肯定的。 Python更容易,因为 - 简单地说 - 它比C更容易使用。首先是:没有内存分配 - 释放。除此之外,OO编程模型非常出色。
除了基本的语言简洁之外,Python WSGI标准比CGI标准更容易应对。
然而,与全部Python框架(TurboGears,CherryPy,Django等无处不在的简化世界相比,原始CGI是一个巨大的痛苦。)
框架强加了许多(必要的)结构。 CGI程序员的开箱即用体验是,学习太多了。真正。所有新事物都无法学习。但是,这个价值远远超过了投资。
使用Django,您可以在几分钟内启动并运行。认真。 django-admin.py startproject
并且你有一些你可以立即运行的东西。您必须设计URL,编写视图函数和设计页面模板。所有这些都是有效的。但它比
Django拥有比PHP更好的架构,因为演示模板与处理完全分离。当您想在Django框架上使用自由且不受约束的PHP样式时,这会导致一些混淆(参见Syntax error whenever I put python code inside a django template)。
将用户界面链接到后端
Python前端(例如Django)使用Python视图函数。这些视图函数可以包含任何Python代码。如果需要,这包括用C语言编写并可从Python调用的模块。
这意味着您可以使用Python友好的界面编译CLIPS模块。它使用import
语句成为Python代码可用的东西。
然而,有时,这是无效的,因为您的Django页面正在等待CLIPS引擎完成。另一种方法是使用类似命名管道的东西。
你有一个基于CLIPS的应用程序,完全用C语言编写,从命名管道读取。你的Django应用程序完全用Python编写,写入该命名管道。由于您有两个独立的进程,因此您可以非常快速地将所有内核最大化。
答案 2 :(得分:5)
我建议Django,但鉴于你要求“像php一样简单”,你必须看一下PSP(Python Server Pages) 。 虽然Django是一个完整的网站框架,但PSP可以像PHP一样使用,没有任何框架。
答案 3 :(得分:3)
在python中编写web-apps比在php中编写更容易。特别是因为python不是一种破碎的语言。
选择一些支持mod_wsgi的网页框架或推出自己的网站框架。在您获得保留后,WSGI应用程序非常易于部署。
如果你想要模板,那么genshi是我为python找到的最好的模板引擎,你可以随意使用它。