Python作为Web服务器应用程序开发的工具外文翻译资料

 2022-05-05 09:05

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料


Python作为Web服务器应用程序开发的工具

Sheetal Taneja1, Pratibha R. Gupta2

摘要

随着网络的发展,出现了一些竞争性语言如Java,PHP,Python,Ruby这样十分有竞争力的语言都引起了开发者的注意。 最近Python已经成为一种流行和首选的网络编程语言,因为他编码简单,易于学习。 作为一个灵活的语言,它提供了基于Web的快速开发应用。 它支持使用CGI和WSGI开发。Python的Web开发得到了强大框架的助力,如Django,web2py,Pyramid和Flask。因此,Python有望成为Web应用程序的首选语言之一。

关键词

Python, web应用开发, 框架,WSGI, CGI, PHP, Ruby

  1. 介绍

Web是一个快速增长的资源库。 互联网被用作访问这些资源的媒介。 Web体系结构主要由两个实体组成,即客户端和服务器[1]。Web客户端是主机上的一个应用程序(浏览器),它主动提供这些资源,Web服务器是一个负责履行客户端请求的web上的机器。超文本传输协议(HTTP)是最流行的用于客户端和服务器网络通信的协议。在静态网页中,浏览器向HTTP服务器发出HTTP请求,HTTP服务器在其数据库中搜索必要资源并将其作为HTTP响应返回。为了避免任何兼容性问题,浏览器发出的每个请求都是以URL(统一资源定位符)的形式。URL协议定义了客户端和服务器之间通信的规则。 它包括帮助识别Web上的服务器系统的主机名(IP地址),确定应该响应请求的服务器上的服务(例如,FTP,电子邮件服务)的端口号,以及该服务在服务器上的访问资源(网页)的路径。响应已经以静态网页形式存储在服务器数据库中的网络内容称为静态网页。然而,也可以在根据客户机的请求实时生成由服务器返回给客户端的响应。例如,提供给谷歌搜索引擎的查询将动态生成索引结果的网页。这种网络内容被称为动态网页。由于为了生成回复,服务器需要处理用户特定的请求,因此在服务器端有一个运行该任务的程序。这样的程序被称为Web应用程序[2]。 因此,Web应用程序是在应用程序服务器上运行的程序,并通过互联网使用浏览器进行调用。Web应用程序与需要安装在希望使用它们的每台主机上的传统应用程序相比具有许多优点[3]。与软件(应用程序)使用CD和分布式发布的传统应用程序相反,Web应用程序不会产生发布和分发成本。他们不需要安装在每个客户端主机上; 而是将它们放置在中央服务器上,并由大量客户访问。由于Web应用程序是集中管理的,因此可以轻松执行应用程序更新和数据备份。无论空间和时间的界限如何,Web应用程序都很容易访问。因为它们通过浏览器访问,访问它们的特定平台不是问题,因此它们提供了跨平台兼容性。尽管有上述优点,但Web应用程序有一些限制。通过浏览器访问Web应用程序需要Inte-rnet连接和服务器可用性。但是,与安装在主机系统上的应用程序相比,通过Internet访问它们需要更多的时间。另外,Web应用程序需要兼容的Web浏览器。由于他们部署在网上,他们很容易受到网络攻击。由于其简单性,Python已经在许多应用程序中使用。同时由于它提供的诸多功能,它现在已经成为流行的网络编程语言。作为一种灵活的语言,它正在吸引网络开发人员的关注。Python通过提供Web框架来简化Web编程任务,这有助于Web快速开发,而开发人员无需从零开始编程[4]。虽然其中一些框架为每个组件构建提供支持,但另一些则提供最低限度的必要功能。一些常用的Web应用程序是webmail,Wikipedia,Google Apps和Microsoft Office Live。谷歌,微软,Facebook,Twitter,Youtube和亚马逊等几家大公司都非常依赖Web应用程序.Web应用程序架构是三层架构[5],如图1所示。第一层是客户端,它是呈现服务器返回的静态/动态内容的Web浏览器,中间层是使用动态Web语言和诸如Python,PHP,Ruby,ASP.NET等工具进行Web应用程序开发的服务器,它处理用户特定的请求,并返回数据。第三层是提供存储手段的数据库。Web开发涉及编程客户端和服务器端。 在服务器端进行编程与编写Web应用程序,提供网站,网页等相关联。在客户端进行编程与开发工具或用于访问这些Web应用程序的接口,站点或页面相关联。 服务器端编程语言包括Python,PHP,Ruby,ASP.NET,Java,CGI(C,Perl)。 客户端编程语言包括HTML,CSS和Javascript [6]。本文的其余部分分为三部分。 第2节讨论了通过CGI,WSGI和Python框架使用Python进行Web开发。 第3部分将Python与流行的Web编程语言,PHP和Ruby进行了比较。第4部分总结了本文的总结。

  1. WEB服务器应用程序开发
  2. CGI和WSGI - Web服务器应用程序使用Python标准库进行开发

A.1 CGI

在静态网页中,网页上的文档(静态网页)可以根据请求轻松返回给客户端。 但是,动态网络涉及基于用户输入(例如表单中的输入)即时生成回复。 既然,服务器只能接受用户请求并返回响应; 它无法处理用户特定的数据并生成响应。所以,它使用Web应用程序来动态生成响应。创建Web服务器需要一个基服务器和一个处理程序。 基服务器负责执行客户端和服务器之间的HTTP通信,而处理程序负责处理请求并以网页或文档的形式返回结果[7]。模块基本HTTP服务器具有可用的公共基本服务器类HTTP服务器。在同一模块中,称为基础HTTP 请求处理的基本处理程序是可用的,但它仅提供了接受客户端输入的功能。简单http服务模块中的简单HTTP请求处理程序提供了额外的GET功能[7]。当Web服务器通过GET或POST方法接收到客户端请求时,它会调用Web应用程序,并将动态生成的HTML页面返回给客户端。 这个过程通过CGI进行。 CGI是通用网关接口,用作服务器和应用程序之间的接口[7] [9] [10]。 图2给出了CGI工作的概述[7]。 图中描述的CGI应用程序可以使用数据库来存储和检索数据。户输入。 提交表单后调用Python CGI脚本(CGIFormResponse.py)。 应该注意,监听用户请求的服务器必须始终运行。 为了达到这个目的,你可以通过从命令提示符执行Python2x文件夹的Lib目录中列出的CGIHTTPServer.py运行Python2.x版本的服务器。举个例子,C:\Python27\Libgt;CGIHTTPServer.py

Serving HTTP on 0.0.0.0 port 8000 ...

可能会注意到上述语句将在端口号8000上运行HTTP服务器。但是,您也可以在特定端口上运行CGIHTTPServer。 最常用的服务器是Apache。 正如上面指出的,CGIHTTPServer模块包括SimpleHTTPServer模块的类CGIHTTP-RequestHandler扩展处理程序类。 此模块通过分叉进程并提供GET和POST方法的实现来处理用户请求。

呈现给用户提供输入的HTML表单必须放置在运行服务器的相同文件夹(Lib)中。 在该文件夹中,使用名称cgi-bin创建另一个文件夹,并将.py文件放在那里。 从图3的Form.html文件中可以注意到,在提交表单之后,调用CGIFormResponse.py来处理输入,这也可以通过浏览器中的URL进行说明。 CGI python脚本导入包含FieldStorage类[7] [11]的cgi模块。 通过Web服务器读取从Web客户端接收到的数据时,需要该类。 当调用python脚本时,将创建该类的一个实例。 这个类实例包含形成字典的键值对。 键是表单上输入字段的名称,值是指用户为这些字段提供的输入。

CGI为使用哪个服务器在客户端保存数据提供了支持。它还支持处理为某个字段提供的多个输入,例如使用复选框[7]。使用CGI进行Web编程并不是首选,因为对于每个客户端请求,服务器都会分叉一个CGI python程序。 这将导致浪费时间,因为python解释器将针对每个请求启动。对于大量请求,这可能会导致服务器暂停。 与CGI相关的问题可以通过使用两种模式 - 嵌入式或守护进程来克服[4]。 嵌入模式不需要通过将解释器集成到服务器中来为每个客户端请求分配进程,例如mod_wsgi和mod_python。 在守护进程模式下,Web服务器与长期运行的后台进程(称为守护进程)进行通信以处理请求,例如mod_wsgi和mod_fastcgi。 这节省了为每个请求产生流程所需的时间。

A.2 WCGI

Web服务器网关接口(WSGI)是一种通过充当接口来促进服务器和应用程序之间交互的标准[4]。 它目前是python web编程最喜欢的接口。 图4展示了WSGI的工作概况。

WSGI应用程序是一个可调用的应用程序,它有两个参数[12]。 第一个参数是一个包含环境变量(如HTTP_HOST,SERVER_PROTOCOL及其值)的字典类型[7]。 第二个参数是一个可调用函数,为了启动对客户端的响应,必须执行该函数。 准备的响应包含表示响应状态的响应代码,其包括状态代码和原因短语(200 正常,302 Found,403 Forbidden,500 Server Error)。图5显示了WSGI.py,其中模块simple_server的make_server方法创建一个监听端口8000上的主机localhost的服务器,负责调用函数wsgiApp。 该服务器使用方法serve_forever在无限循环中运行。 函数wsgiApp通过将状态设置为#39;200 OK#39;并将头部#39;Content-type#39;设置为#39;text / html#39;来启动对客户端的HTTP响应。 标题#39;Content-type#39;帮助客户确定如何解释服务器的响应。 启动响应后,函数wsgiApp将内容返回给客户端。

有时,对WSGI应用程序的请求可能需要一些预处理,例如修改请求参数或重定向该请求。 此外,WSGI应用程序返回的结果可能需要进一步的处理,比如格式化结果。 涉及WSGI应用程序的预处理和后处理可以通过额外的包装功能以称为中间件的层的形式实现[4] [14]

B.使用Python Web框架的Web服务器应用程序开发

使用CGI和WSGI进行Web编程需要使用Python标准库从头构建Web应用程序。 Python以软件包/模块的形式提供了Web框架[15] [4],可以简化编写应用程序的任务。这些框架减轻了开发人员的繁琐工作。它们通过为请求解释(获取表单参数,处理cookie和会话),响应生成(生成HTML或其他格式的数据,如pdf,excel)和存储数据等多种活动提供支持来支持服务器和客户端编程。 Web框架被进一步分类为全栈和非全栈框架[15]。 与非全栈框架相比,全栈框架为编程的每个阶段提供组件。

所有的框架都包含模板和数据持久性作为构建Web [4]的关键要素。 模板用于避免将HTML和Python代码混合到一个文件中时产生的复杂代码。 模板是带有占位符的HTML文件,具体取决于用户的输入。数据持久性处理存储和检索数据并保持一致性。 可以使用纯文本文件,关系数据库引擎(如MYSQL,Oracle)或某些面向对象的数据库来存储和维护数据。支持WSGI的Web框架应该是首选的[4]。 这使得部署应用程序更容易。

在下面的段落中,我们简要介绍一些流行的Web框架:

全栈框架

  1. Django

作为一个完整的堆栈框架,Django支持快速的Web应用程序开发,需要较少的内核来完成。 它被广泛地称为“完美主义者的截止日期的网络框架”[16]。 它可以使用更少的代码行轻松创建Web应用程序并且可扩展[17]。 它包含一个可用于开发和测试应用程序的内置服务器。 该框架带有全面的,精心编写的文档。 该框架的特点包括模板,支持关系数据库模型(数据库包括MySQL,SQLite,Oracle和Postgre-SQL),全面的安全性等。它非常适合数据库驱动的应用程序。 该框架基于代码的可重用性和信息的非冗余性的原则。 使用此框架构建的应用程序示例包括Pinterest,Instagram,Mozilla,The Onion。

  1. TurboGears

TurboGears框架结合了SQLAlchemy,Pylons,Genshi,Repoze和Tosca Widgets。 该框架包括1.x和2.x系列,其中2.x系列包含所有上述指定的组件。但是,1.x系列由SQLAlchemy,Genshi,CherryPy和MonchKit组成。 它支持客户端和服务器端Web编程。 它提供了设计师友好的模板系统[18]。 它主要用于为复杂度高的工业问题提供解决方案。 该框架支持多个数据库,其中SQLAlchemy被认为是最强大的数据库管理系统[19]。 这个框架被SourceForge,Fedora社区,TavolaClandestina,Glossom,ShowMeDo等使用。

  1. web2py

该框架支持可扩展,安全

全文共6952字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[12691],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。