我进入cgi的python并遇到了Django.我不太确定我是否非常了解.是我必须在apache中安装的东西,还是可以与cgi一起使用的东西?
想知道是因为我很想学习它,但是我使用的服务器却没有给我很多特权.
谢谢
解决方法:
尽管您可以在CGI之上运行Python Web框架,但我不希望这样做:Web框架为您提供了许多额外的功能,使您的编码更加容易,但是为此付出的部分代价是框架具有许多额外的代码来提供该功能-每次Web应用程序启动时,都需要加载该代码,并执行其初始化部分.
每次访问相应的URL时,CGI都会为您的代码启动一个新的过程,并且该过程在完成对单个访问的响应后终止.因此,您确实希望尽可能少地执行初始化工作,以避免对用户请求的响应非常缓慢.
因此,如果您的所有托管服务提供商都允许您使用CGI,则您可能希望对“裸露的CGI接口”进行编程,以最大程度地减少启动/关闭的开销.
您可以在Marek Kubica的howto“如何在网络中使用Python”中很好地概述问题和可能性. WSGI(可以与底层Web服务器交互的许多其他方式)可以在CGI之上运行,因此从理论上讲,您可以使用任何支持WSGI的Python Web框架(这意味着几乎所有现代的框架)-重点是,除非您只做学习和“玩转”,否则您不希望在您实际服务的页面上一遍又一遍地产生启动开销. (如果您只是在学习和玩耍,则可以在自己的计算机上运行Web服务器供自己专用,因此托管服务提供商的限制是无关紧要的;-).
如果您确实决定以“裸CGI”级别进行编程,则可以从this page开始-确保您遵循从它到有用教程以及指向Python CGI脚本的有用和有趣示例的voidspace集合的各种链接.
要调查许多可用的Python Web应用程序框架中的一些,可以启动here
对于涵盖的每个框架,您都会在其中找到一些信息和链接.
最后但并非最不重要的一点是,您不应该忽略在Google App Engine上开发Web应用程序的可能性-尽管它具有其自身的特性和局限性,但它确实提供了WSGI兼容的环境,即使是非常密集的使用也可以免费使用.有一些专门开发来利用App Engine的有趣的轻量级框架,例如出色的tipfy(tipfy Wiki的本页也链接到其他页面),但尤其是,您可以在那里运行流行的django框架(具有特殊性和局限性,因为我说过-特别是下面没有关系数据库-但尽管如此,它仍然是最受欢迎的选择.
在App Engine成立之初,有些人担心使用它可能导致“锁定”-由于它与其他托管环境不同,因此开发Web应用程序是否难于在需要时以及何时将其移植到其他地方?幸运的是,诸如appscale和typhoonae之类的开源软件消除了任何此类担忧.