8

这是我大约一周前提出的两个 问题的后续。这样做的结果是,我正在构建一个基于 AI 的网络应用程序原型,我想知道使用什么语言。结论似乎是我应该选择 python 之类的东西,然后将任何关键位转换为更快的东西,比如 Java 或 C/C++。

这对我来说听起来不错,但我现在想知道 python 是否真的是用于构建 Web 应用程序的正确语言。我过去开发的大多数 Web 应用程序都是 C/C++ CGI,然后是 php。我发现 php 更容易使用,因为它使将用户界面链接到后端变得更加容易,而且对我来说也更合乎逻辑。

我以前没有使用过 python,但我基本上想知道的是,在 python 中进行 CGI 编程有多容易?我是否必须回到在 C/C++ 中执行此操作的繁琐方式,您必须将 HTML 代码存储在模板中并让 CGI 读取它们并用适当的值替换特殊代码,或者是否可以让模板成为与 php 一样的代码?

我可能在这里问了一个非常无知的问题,对此我深表歉意,但希望有人会知道我在说什么!我的总体问题是:用 python 编写 web 应用程序是个好主意吗,它和 php 一样简单吗?

4

4 回答 4

17

Python 是一个不错的选择。

不过,我会避免使用 CGI 模型 - 您将为每次请求启动解释器支付巨额罚款。大多数 Python Web 框架都支持WSGI 标准,并且可以通过多种方式连接到服务器,但大多数都存在于 Web 服务器与之通信的某种长期运行的进程中(通过代理、FastCGI、SCGI 等)。

说到框架,Python 环境已经成熟。这既好又坏。有很多不错的选择,但对于新手来说可能会令人生畏。

如果您正在寻找与 web/DB/模板集成预打包的东西,我建议您查看DjangoTurboGearsPylons。如果您想更好地控制各个组件,请查看CherryPyColubridweb.py。

至于是否“像PHP一样简单”,那是主观的。通常鼓励在 Python Web 编程世界中将模板和应用程序逻辑分开,这可以让你的生活更轻松。另一方面,能够在 PHP 文件中编写页面的所有代码是“简单”的另一种定义。

祝你好运。

于 2008-11-14T15:59:24.410 回答
8

“在 python 中进行 CGI 编程有多容易?” 比 C 更容易,这是肯定的。Python 更容易,因为——简单地说——它是一种比 C 更容易使用的语言。首先,最重要的是:没有内存分配-释放。除此之外,OO 编程模型非常出色。

除了基本的语言简单性之外,Python WSGI标准比 CGI 标准更容易处理。

然而,与完全简化的全 Python 框架(TurboGearsCherryPyDjango等)的世界相比,原始 CGI 是一个巨大的痛苦。

这些框架强加了很多(必要的)结构。对于 CGI 程序员来说,开箱即用的体验是需要学习的东西太多了。真的。所有新事物都太难学了。但是,价值远远超过投资。

使用 Django,您可以在几分钟内启动并运行。严重地。 django-admin.py startproject你有一些几乎可以立即运行的东西。您必须设计您的 URL、编写视图功能和设计页面模板。所有这些都是工作。但它比 C 中的 CGI 工作 量少。

Django 具有比 PHP 更好的架构,因为演示模板与处理完全分离。当您想在 Django 框架上使用自由且不受约束的 PHP 样式时,这会导致一些混乱(当我将 python 代码放入 django 模板时,请参阅语法错误)。

将用户界面链接到后端

Python 前端(例如 Django)使用 Python 视图函数。这些视图函数可以包含任何 Python 代码。如有必要,这包括用 C 编写并可从 Python 调用的模块。

这意味着您可以使用 Python 友好的界面编译CLIPS模块。它变成了你的 Python 代码可以通过import语句使用的东西。

然而,有时这样做是无效的,因为您的 Django 页面正在等待 CLIPS 引擎完成。另一种方法是使用命名管道之类的东西。

你有你的基于 CLIPS 的应用程序,完全用 C 语言编写,从命名管道读取。完全用 Python 编写的 Django 应用程序写入该命名管道。因为你有两个独立的进程,你会像这样很快地最大化你的所有核心。

于 2008-11-14T16:28:03.433 回答
5

我建议使用Django,但鉴于您要求“与 php 一样简单”,那么您必须查看 PSP(Python Server Pages)。虽然 Django 是一个完整的做网站框架,但 PSP 可以像 PHP 一样使用,无需任何框架。

于 2008-11-14T16:08:08.683 回答
3

在 python 中编写 web 应用程序比在 php 中更容易。特别是因为 python 不是一种损坏的语言。

选择一些支持 mod_wsgi 的 web 框架或推出你自己的框架。WSGI 应用程序在您停止部署后非常容易部署。

如果你想要模板,那么 genshi 是我为 python 找到的最好的模板引擎,你可以随心所欲地使用它。

于 2008-11-14T16:17:29.103 回答