复旦大数据(ID:FuDanBigData) "Web 2.0"是指由用户主导网站内容的创作。自从这个概念兴起以来,网络编程就成为了一个热门话题。一直以来,用Python创建网站是相当繁琐的,所以也很少有人这么做。因此人们创建了许多框架和辅助工具来帮助开发者创建更快更可靠的网站。这篇HOWTO介绍了几种Python结合web服务器创建动态内容的方法。当然,因为这个话题涉及的内容太广,很难在单独的一篇文档里进行详细的描述。所以这里就只对一些当前流行的库作简要的概述。 参见:这篇HOWTO试图对Python的Web开发作一个概览,但不能总是按预期及时地更新。Python的Web开发正在迅速发展,所以wiki上的Web Programming可能与近期的发展更为接近。 底层视角当一个用户访问网站时,他们的浏览器会与网站的服务器进行连接(这称为请求)。服务器在文件系统中寻找文件,并将其发送回用户的浏览器(这称为响应)。这就是底层HTTP协议的大致工作原理。动态网站不是基于文件系统中的文件,而是以程序为基础。当请求到来,运行在服务器上的程序就会生成相应内容并发送回用户。它们可以处理用户的各种数据,例如列出公告板上的帖子,显示你的邮件,配置软件,或者只是显示当前时间。这些程序能用服务器支持的任意语言完成。自从大部分的服务器开始支持Python,用Python创建动态网站就变得十分简单了。 大多数的HTTP服务器是用C或者C 写的,它们不能直接执行Python代码,所以服务器和程序之间就需要有一座桥。网桥,或者更确切地称为接口,决定了程序如何与服务器进行交互。 为了创建尽可能好的接口,人们作出了无数尝试,但只有少数的几个值得关注。 不是每一个服务器都支持所有的接口。许多服务器只支持老的,现在已经过时的接口。然而,它们经常可以通过第三方模块扩展来支持新的接口。 常用网关接口这个接口,通常被称为"CGI",是最古老的,几乎被所有web服务器很好地支持着。在处理单个请求时,程序由服务器启动,通过CGI与服务器进行通讯。因而每个请求来临时都要花一定时间去启动新的Python解释器。这就使得整个接口在低负载状态的时候才能正常使用。 CGI的优点在于它很简单----用CGI写一个Python程序大概就是三行代码的事情。这种简易性造成了一种误解:它对开发者的帮助聊胜于无。 虽然还有可能用CGI写程序,但已经不建议这么做了。通过使用本文稍后提到的WSGI,就能模仿CGI的方式写程序,而且在迫不得已的时候,它们也能作为CGI运行。 参见:Python标准库包含了一些模块来帮助创建简单的CGI程序: Python的wiki有专门描述CGI脚本的页面,里面有关于CGI在Python中的一些额外信息。 测试CGI的简单脚本你可以用这个简短的CGI程序来测试你的服务器是否支持CGI。
根据你服务器的配置,你可能需要使用用 也许你想知道 在你自己的服务器上安装配置CGI如果你没有自己的服务器,这就不适用于你。你可以检查服务器是否如常工作,如果不是,你就可能需要联系你网站的管理员。如果它是一个庞大的主机,你可以尝试提交问题请求Python支持。 如果你就是自己的管理员,或者基于测试的目的想在自己的电脑上安装CGI,你就必须自己进行配置。因为每个服务器的配置选项都不用,所以配置CGI没有通用的方法。现在使用最广的免费服务器是Apache HTTPd,或者简称Apache。通过系统的包管理工具,Apache可以轻易地安装到几乎所有的系统。lighttpd则是另一个选项,据说有着更好的性能。在许多系统中,可以使用包管理工具来安装这个服务器,所以不再需要手动来编译它。
关于cgi脚本的常见问题在运行CGI脚本的时候,时常会出现一些小的烦人的问题。有时看起来似乎正确的脚本不会像预期那样工作,原因是某些小的隐藏问题很难被发现。 以下是一些潜在的问题:
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|