3

我正在为 cgi 进入 python 并遇到 Django。我不太确定我是否非常了解它。它是我必须在 apache 中安装的东西,还是我可以在我的 cgi 中使用的东西?

想知道,因为我很想学习它,但我使用的服务器并没有给我很多特权。

谢谢

4

4 回答 4

4

虽然您可以在 CGI 之上运行 Python Web 框架,但我认为您不想这样做:Web 框架为您提供了许多额外的功能,使您的编码更容易,但您为此付出的部分代价是框架有很多额外的代码来提供这个功能——每次你的 web 应用程序启动时,这些代码都需要被加载,并执行它的初始化部分。

每次访问相应的 URL 时,CGI 都会为您的代码启动一个新进程,并在完成对单次访问的响应后终止该进程。因此,您确实希望尽可能少地进行初始化工作,以避免对用户请求的响应非常缓慢。

因此,如果您的所有托管服务提供商都允许您使用 CGI,那么您可能希望“向下编程到裸 CGI 接口”,以最大限度地减少启动/关闭开销。

您可以在 Marek Kubica 的操作指南“如何在 Web 中使用 Python”中对问题和可能性有一个很好的概述。WSGI(它可以与底层 Web 服务器交互的许多其他方式)可以在 CGI 之上运行,因此理论上您可以使用任何支持 WSGI(这意味着几乎所有现代框架)的 Python Web 框架——关键是,除非您只是在学习和“玩耍”,否则您不希望在您实际服务的页面上一遍又一遍地产生启动开销。(如果您只是在学习和玩耍,您可以在自己的机器上运行一个网络服务器供您自己使用,因此您的托管服务提供商的限制是无关紧要的;-)。

如果您确实决定在“裸 CGI”级别进行编程,您可以从这个页面开始——确保您按照从它到有用教程的各种链接以及到有用且有趣的 Python CGI 脚本示例的 voidspace 集合。

对于许多可用的 Python Web 应用程序框架中的一些进行调查,您可以从这里开始 ,对于所涵盖的每个框架,您都可以找到一些信息和链接。

最后但并非最不重要的一点是,您不应忽视在Google App Engine上开发 Web 应用程序的可能性——尽管它有其自身的特点和局限性,但它确实提供了一个符合 WSGI 的环境,即使是非常密集的使用也是免费的。有一些有趣的轻量级框架是专门为利用 App Engine 而开发的,例如优秀的tipfy(tipfy wiki 中的这个页面也链接到其他页面),但特别是您可以在那里运行流行的 django 框架(具有特殊性和局限性,如我说——特别是,下面没有关系数据库——但尽管如此,它仍然是最受欢迎的选择)。

在 App Engine 的早期,有些人担心使用它会导致“锁定”——因为它与其他托管环境不同,如果想要移植到其他地方,那么为它开发的 Web 应用程序会不会很难移植?幸运的是,像appscaletyphoonae这样的开源软件已经消除了这些担忧。

于 2010-05-22T17:13:10.993 回答
0

像 Django 这样的 Web 应用程序框架通过生成自己的进程并处理来自 Web 服务器的请求来取代 CGI。他们还提供了通过创建模板、部分模板、助手等来简化 html 的工具。

如果您无法完全控制您的服务器,您的主机将需要为您安装它。

于 2010-05-22T00:51:34.773 回答
0

Web 应用程序框架独立于实际使用的 HTTP 服务器。服务器将请求传递给使用它编写的应用程序,然后它启动一些齿轮并吐出响应,然后将其发送回 HTTP 服务器。

Django 有 3 个流行的 HTTP 服务器连接器:WSGI、FastCGI 和 mod_python。这些都解释了......这里的某个地方,所以我不会重复容易发现的信息。

于 2010-05-22T00:51:44.723 回答
0

基本上任何框架的功能是:-

  1. 确保您不必执行重复性任务。
  2. 让您轻松复用和模块化
  3. 它们提供了一个抽象层(在大多数情况下,这会让你更有效率)

所以,Django 是一个 Web 应用程序框架;自然满足以上三个条件。

如果你对使用 Python 进行 cgi 编程感兴趣,你不应该看 Django。

另一方面,如果您正在寻找 Web 开发的选项,那么 django 肯定是一个不错的选择,而手动 cgi 编程则不是。

于 2010-05-22T12:23:17.513 回答