我正在进入python for cgi并且遇到了Django。我不太确定我非常理解。这是我必须在apache中安装的东西,还是我可以用我的cgi?
想知道因为我喜欢学习它,但我使用的服务器并没有给我很多特权。
感谢
答案 0 :(得分:4)
虽然您可以在CGI之上运行Python Web框架,但我认为您想要:Web框架为您提供了许多额外的功能使您的编码更容易,但您为此付出的部分代价是框架有许多额外的代码来提供该功能 - 每次Web应用程序进程启动时,代码都需要加载,并执行其初始化部分。
每次访问相应的URL时,CGI都会为您的代码启动一个全新的流程,并且该流程在响应该单次访问时终止。因此,您确实希望尽可能少地进行初始化工作,以避免对用户请求的响应非常缓慢。
因此,如果您的所有托管服务提供商都允许您使用CGI,您可能需要编写“直到裸CGI接口”,以便最大限度地减少启动/关闭开销。
您可以很好地了解Marek Kubica的howto“HOWTO在网络中使用Python”中的问题和可能性。 WSGI(它可以与底层Web服务器连接的许多其他方式)可以在CGI之上运行,所以理论上你可以使用任何支持WSGI的Python Web框架(这意味着几乎所有现代的) - 重点是,除非你只是学习和“玩弄”,否则你不会希望一次又一次地招致启动开销再次在您实际服务的页面上。 (如果您 只是学习和玩游戏,您可以在自己的计算机上运行Web服务器供您自己专用,因此您的托管服务提供商的限制无关紧要; - )。
如果你决定以“裸CGI”级别编程,你可以从this page开始 - 确保你遵循从它的各种链接到有用的教程,以及有用和有趣的例子的空间空间集合。 Python CGI脚本。
对于许多可用的Python Web应用程序框架的一些调查,您可以启动here 对于每个框架,你会找到一些信息和链接。
最后但并非最不重要的一点是,你不应该忽视在Google App Engine上开发网络应用程序的可能性 - 虽然它有自己的特点和限制,它确实提供了一个WSGI兼容的环境,即使是漂亮的也是免费的密集使用。有一些有趣的轻量级框架是专为利用App Engine而开发的,例如优秀的tipfy(来自tipfy wiki的这个页面也链接到其他人),但特别是你可以在那里运行流行的django框架(具有特殊性)和限制一样,正如我所说 - 特别是下面没有关系数据库 - 但它仍然是最受欢迎的选择,尽管如此)。
在App Engine的早期,有些人担心使用它可能会导致“锁定” - 因为它与其他托管环境不同,如果有人想要,那么为其开发的网络应用程序难以移植到其他地方至?幸运的是,像appscale和typhoonae这样的开源软件消除了任何此类担忧。
答案 1 :(得分:0)
像Django这样的Web应用程序框架通过生成自己的进程和处理来自Web服务器的请求来替换CGI。它们还提供了通过创建模板,部分模板,帮助程序等来简化html的工具。
如果您无法完全控制服务器,则主机需要为您安装。
答案 2 :(得分:0)
Web应用程序框架独立于正在使用的实际HTTP服务器。服务器传递一个使用它写入请求的应用程序,它会发出一些响应并吐出一个响应,然后发送回HTTP服务器。
Django有三个流行的HTTP服务器连接器:WSGI,FastCGI和mod_python。这些都在这里解释......所以我不会重复那些容易被发现的信息。
答案 3 :(得分:0)
基本上任何框架的功能都是: -
所以,Django是一个Web应用程序框架;自然它满足上述所有三个条件。
如果你对使用Python的cgi编程感兴趣,你应该不要看Django。
另一方面,如果您正在寻找Web开发的选项,那么django肯定是一个不错的选择,而手动cgi编程则不是。