Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是web应用程序框架?_Python_Django_Cgi_Web Frameworks - Fatal编程技术网

Python 什么是web应用程序框架?

Python 什么是web应用程序框架?,python,django,cgi,web-frameworks,Python,Django,Cgi,Web Frameworks,我正在为cgi学习python,遇到了Django。我不太确定我是否理解它。它是我必须在apache内部安装的东西还是我可以在cgi中使用的东西 我想知道,因为我很想学习,但我使用的服务器没有给我很多特权 感谢像Django这样的web应用程序框架通过生成自己的进程和处理来自web服务器的请求来取代CGI。它们还提供了通过创建模板、部分模板、助手等简化html的工具 如果您不能完全控制服务器,您的主机将需要为您安装它。web应用程序框架独立于实际使用的HTTP服务器。服务器将使用它编写的应用程序

我正在为cgi学习python,遇到了Django。我不太确定我是否理解它。它是我必须在apache内部安装的东西还是我可以在cgi中使用的东西

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


感谢

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


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

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


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

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

  • 确保你不必做重复的任务
  • 使您易于重用和模块化
  • 它们提供了一个抽象层(在大多数情况下,这会使您的工作效率更高)
  • 因此,Django是一个web应用程序框架;当然,它满足上述三个条件

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

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

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

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

    因此,如果您的托管提供商允许您使用CGI,那么您可能希望编程“到裸露的CGI接口”,以最小化启动/关闭开销

    在Marek Kubica的“如何在web中使用Python”中,您可以很好地了解问题和可能性。WSGI(与底层web服务器接口的许多其他方式之一)可以在CGI之上运行,因此从理论上讲,您可以使用任何支持WSGI的Python web框架(这意味着几乎所有的现代框架)——关键是,除非您只做学习和“玩”而已,您不希望在实际提供服务的页面上一次又一次地产生启动开销。(如果您只是在学习和玩耍,您可以在自己的机器上运行web服务器供自己专用,因此您的主机提供商的限制无关紧要;-)

    如果您确实决定在“裸CGI”级别编程,那么您可以从开始--确保遵循从它到有用的教程和到Python CGI脚本的有用和有趣示例的voidspace集合的各种链接

    对于许多可用的pythonweb应用程序框架的调查,您可以从 对于每个框架,您都可以找到一些信息和链接

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


    应用内引擎的早期,一些人担心使用它会导致“锁定”--由于它与其他托管环境不同,为它开发的web应用程序在需要时是否很难移植到其他地方?幸运的是,像and这样的开源软件消除了任何此类担忧。

    挑剔:wsgi、fastcgi和mod_python虽然是python的东西,但它们不是django的东西,可能适用于任何python web框架