服务器内部错误关照模板(服务器内部错误关照模板图片)「服务器遇到内部错误请关闭服务器的」

  限时干货下载:添加微信公众号“数据玩家「fbigdata」”

  复兴【2】免费获取【完备数据分析资料!(包罗SPSS、SAS、SQL、EXCEL、Project)!】

  译文:https://www.cnblogs.com/rainfd/p/howto_webservers.html

  原文:HOWTOUsePythonintheWeb

  "Web2.0"是指由用户主导网站内容的创作。自从这个概念鼓起以来,网络编程就成为了一个热门话题。不停以来,用Python创建网站是相称繁琐的,以是也很少有人这么做。因此人们创建了很多框架和辅助工具来资助开辟者创建更快更可靠的网站。这篇HOWTO先容了几种Python连合web服务器创建动态内容的方法。固然,由于这个话题涉及的内容太广,很难在单独的一篇文档里举行具体的形貌。以是这里就只对一些当前盛行的库作扼要的概述。

  拜见:这篇HOWTO试图对Python的Web开辟作一个概览,但不能总是按预期及时地更新。Python的Web开辟正在敏捷发展,以是wiki上的WebProgramming大概与近期的发展更为靠近。

  底层视角

  当一个用户访问网站时,他们的欣赏器会与网站的服务器举行毗连(这称为哀求)。服务器在文件体系中探求文件,并将其发送回用户的欣赏器(这称为相应)。这就是底层HTTP协议的大抵工作原理。动态网站不是基于文件体系中的文件,而是以程序为底子。当哀求到来,运行在服务器上的程序就会天生相应内容并发送回用户。它们可以处理惩罚用户的各种数据,比方列出公告板上的帖子,表现你的邮件,设置软件,大概只是表现当前时间。这些程序能用服务器支持的恣意语言完成。自从大部分的服务器开始支持Python,用Python创建动态网站就变得非常简单了。

  大多数的HTTP服务器是用C大概C++写的,它们不能直接实行Python代码,以是服务器和程序之间就必要有一座桥。网桥,大概更确切地称为接口,决定了程序怎样与服务器举行交互。

  为了创建尽大概好的接口,人们作出了无数实行,但只有少数的几个值得关注。

  不是每一个服务器都支持全部的接口。很多服务器只支持老的,如今已颠末期的接口。然而,它们常常可以通过第三方模块扩展来支持新的接口。

  常用网关接口

  这个接口,通常被称为"CGI",是最古老的,险些被全部web服务器很好地支持着。在处理惩罚单个哀求时,程序由服务器启动,通过CGI与服务器举行通讯。因而每个哀求到临时都要花肯定时间去启动新的Python表明器。这就使得整个接口在低负载状态的时间才华正常利用。

  CGI的长处在于它很简单----用CGI写一个Python程序大概就是三行代码的事变。这种浅显性造成了一种误解:它对开辟者的资助聊胜于无。

  固然尚有大概用CGI写程序,但已经不发起这么做了。通过利用本文稍后提到的WSGI,就能模仿CGI的方式写程序,而且在必不得已的时间,它们也能作为CGI运行。

  拜见:Python标准库包罗了一些模块来资助创建简单的CGI程序:

cgi--在CGI脚本中处理惩罚用户输入

cgitb--当在CGI应用中出现错误时,不再表现"500服务器内部错误"的消息,而用更好的错误回溯代替。

  Python的wiki有专门形貌CGI脚本的页面,内里有关于CGI在Python中的一些额外信息。

服务器内部错误通知模板(服务器内部错误通知模板图片) 服务器内部错误关照
模板(服务器内部错误关照
模板图片)「服务器遇到内部错误请关闭服务器的」 行业资讯

  测试CGI的简单脚本

  你可以用这个简短的CGI程序来测试你的服务器是否支持CGI。

#!/usr/bin/envpython

#-*-coding:UTF-8-*-

#enabledebugging

importcgitb

cgitb.enable()

print("Content-Type:text/plain;charset=utf-8")

print()

print("HelloWorld!")

  根据你服务器的设置,你大概必要利用用.py大概.cgi扩展名来生存此代码。出于对安全的思量,此文件也大概必要放置在cgi-bin目次中。

  大概你想知道cgitb那行代码有什么作用。这行代码表现精良的错误回溯,而不但仅是瓦解时在用户的欣赏器上表现"服务器内部错误"。这有利于举行debug,但存在肯定的风险袒露某些机密的数据给用户。基于这个缘故起因,你不应该在生产环境中利用cgitb模块。尚有,终端用户不会喜好在欣赏器上看到"服务器内部错误"如许不端庄的信息,以是你应该捕获全部非常,并表现符合的错误页面。

  在你本身的服务器上安装设置CGI

  假如你没有本身的服务器,这就不实用于你。你可以查抄服务器是否如常工作,假如不是,你就大概必要接洽你网站的管理员。假如它是一个巨大的主机,你可以实行提交题目哀求Python支持。

  假如你就是本身的管理员,大概基于测试的目标想在本身的电脑上安装CGI,你就必须本身举行设置。由于每个服务器的设置选项都不消,以是设置CGI没有通用的方法。如今利用最广的免费服务器是ApacheHTTPd,大概简称Apache。通过体系的包管理工具,Apache可以轻易地安装到险些全部的体系。lighttpd则是另一个选项,听说有着更好的性能。在很多体系中,可以利用包管理工具来安装这个服务器,以是不再必要手动来编译它。

在Apache中,你可以在教程DynamicContentwithCGI中查察全部相干内容。在大多数的环境下,只设置+ExecCGI就充足了。这篇教程也提到一些最常见的题目。

在lighttp中必要利用能直接设置的CGI模块。总的来说,只要公道地对cgi.assign举行设置。

关于cgi脚本的常见题目

  在运行CGI脚本的时间,时常会出现一些小的烦人的题目。偶然看起来好像精确的脚本不会像预期那样工作,缘故起因是某些小的隐蔽题目很难被发现。

  以下是一些潜伏的题目:

Python脚本没有被标记为可实行的。当CGI脚本不能被实行时,大部分服务器不会运行它并发送结果给用户,反而是让用户来下载它。在类Unix体系中,要精确运行CGI脚本,必要设置+x位(修改实行权限)。利用chmoda+xyour_.py大概会办理题目。

在类Unix体系中,编程文件行竣事必须是Unix风格的。这相称紧张,由于服务器会查抄脚本文件的第一行(称为shebang),并实行运行那边指定的程序。假如是Windows的行竣事(回车和换行CarriageReturnLineFeed,以是称为CRLF),服务器就很轻易肴杂。因而你要将文件转为Unix的行竣事(只有换行LineFeed,LF)。在通过FTP上传文件时,选择文本模式而非二进制模式,转换就可以主动完成。但更好的方式是在编辑器中用Unix风格的行竣事生存文件。如今大多数的编辑器都支持这一选项。

你的Web服务器必须可以或许读取文件,还要包管相干权限的精确。在类Unix体系中,服务器常在用户和用户组为www-data的状态下运行。以是可以试着去修改文件的全部权,大概用chmoda+ryour_.py下令将文件改为可读状态。

在类Unix体系中,shebang(#!/usr/bin/envpython)中表明器的路径必须精确。这行代码在/usr/bin/python中探求Python,但假如该目次不存在大概路径不精确,查找都会失败。你假如知道你的Python安装在那边,可以利用绝对路径。下令whereispython和type-ppython都能资助你找到它的安装位置。一旦你知道了精确的路径,你就可以相应地修改shebang:#!/usr/bin/python。

文件中不能包罗BOM(ByteOrderMark)。利用BOM意味着利用UTF-16或UTF-32编码,但有的编辑器也将这些内容写进UTF-8编码的文件。BOM干扰了shebang一行,以是要确保你的编辑器不要将BOM写到文件中。

假如Web服务器在利用mod_python,mod_python大概会有题目。mod_python可以或许本身处理惩罚CGI脚本,但也能成为题目的源头。

mod_python

  从PHP来的人常常很难捉住用Python举行Web开辟的要领。他们第一时间想到的通常是mod_python,由于他们想mod_python等价于mod_php。究竟上,它们之间有很多差别。mod_python做的是将表明器嵌入到Apache的进程里,如许就不消再为每个哀求各启动一个表明器,从而加快了运行速率。另一方面,PHP常常肴杂着HTML,但Python不是。实际上,在Python中与之相称的是模板引擎。比起mod_php,mod_python本身要强大得多,它提供了更多的权限来访问Apache的内部。在一个Python肴杂HTML的"Python服务器页面"模式(与JSP相似)下,它可以模仿CGI工作。它尚有一个"发布者",可以指定一个文件来吸取全部哀求并决定接下来如那边理惩罚它们。

  mod_python确实有很多题目。差别于PHP表明器,Python表明器在运行文件时是利用缓存的,以是修改文件时必要重启服务器。另一个题目是关于Apache的工作原理---Apache启动子进程来处理惩罚哀求,纵然用不到Python,每个子进程依然要加载整个Python表明器。这让整个服务器运行得更慢了。另一个题目则是,假如不重新编译mod_python,它就不能切换版本(比方从2.4升级到2.5),来由是mod_python依靠于一个特定版本的libpython。尚有,mod_python是绑定到Apache上的,以是用mod_python写的程序不能轻易移植到在其他Web服务器上。

  已经有很多缘故起因表明了应该克制用mod_python写新的程序。在特定环境下,利用mod_python举行开辟还是不错的,但自从WSGI出现后,我们就可以在mod_python下运行WSGI程序了。

  FastCGI和SCGI

  FastCGI和SCGI实行以另一种方式办理CGI的性能题目。代替了在Web服务器中嵌入表明器的做法,它们利用了一个长时间运行的背景进程。这还是一个能让服务器与背景进程"语言"的模块。既然背景进程独立于服务器,它就可以用包罗Python在内的任何语言来完成。利用的语言只必要一个能处理惩罚与Web服务器通讯的库。

  正如SCGI本质上就是一个"简单的FastCGI",FastCGI和SCGI之间的差距非常小。由于仅有少数的服务器支持SCGI,大多数人利用工作方式相似的FastCGI。险些全部能应用于SCGI的也能应用于FastCGI,以是我们只讨论后者。

  如今,FastCGI不再被直接利用。就像mod_python,它只在WSGI的应用开辟中利用。

  安装设置FastCGI

  每个Web服务器都必要一个特定的模块。

Apache有modfastcgi和modfcgid。mod_fastcgi是先出来的一个,但由于一些答应题目,偶然间会被误以为是收费的。mod_fcgid是一个体积更小,可兼容的更换选择。

lighttd发布了本身的FastCGI模块和SCGI模块。

nginx也支持FastCGI。

  一旦你将模块安装设置完成,就可以用下面的WSGI应用举行测试:

#!/usr/bin/envpython

#-*-coding:UTF-8-*-

importsys,os

fromhtmlimportescape

fromflup.server.fcgiimportWSGIServer

defapp(environ,start_response):

start_response('200OK',[('Content-Type','text/html')])

yield'h1FastCGIEnvironment/h1'

yield'table'

fork,vinsorted(environ.items()):

yield'trth{0}/thtd{1}/td/tr'.format(

escape(k),escape(v))

yield'/table'

WSGIServer(app).run()

  这是一个简单的WSGI应用,但你必要先安装[flup][https://pypi.python.org/pypi/flup/1.0]模块来处理惩罚底层的FastCGI访问。

  拜见:有一些关于用WSGI摆设Django的文档,此中多数的履历可以复用到其他WSGI兼容的框架和库。除了manage.py的部分必要修改,这里的例子可以直接利用。在Django中利用也是差不多的。

  mod_wsgi

  modwsgi是一次计划摆脱底层网关束缚的实行。上文提到的FastCGI,SCGI和modpython大多是用来摆设WSGI应用的,modwsgi则是直接将WSGI应用嵌入到Apache服务器中。modwsgi是专门计划来托管WSGI应用。比起利用其他更底层,还必要胶水语言的模块,利用它开辟WSGI应用程序更为简单。缺点是modwsgi仅限于Apache服务器;其他服务器则必要本身的modwsgi实现。

  mod_wsgi支持两种模式:嵌入模式,直接整合到Apache的进程中;保卫进程模式,工作方式与FastCGI相似。

  退却一步:WSGI

  WSGI已经提到过反复,这好像意味着它很紧张。究竟上,它确实是。以是是时间来表明它了。

  网络服务器网关接口(WebServerGatewayInterface),大概简称WSGI,在PEP333中有具体界说,是如今举行Python网络编程的最佳方式。固然这对开辟框架的程序员来说是一件功德,但一个平凡的Web开辟职员通常不必要跟它有直接的打仗。当选择Web开辟框架的时间,最好选择一个支持WSGI的。WSGI最大的长处就是同一了应用程序的接口。假如你的程序兼容WSGI,这就意味这你外层利用的框架支持WSGI,你的程序可以摆设到恣意支持WSGI的Web服务器。你不再必要关心用户利用的是modpython,FastCGI,还是modwsgi,由于利用了WSGI的程序可以在任何的网关接口上运行。Python的标准库也包罗了它本身的WSGI服务器----wsgiref,一个可用作测试的小型服务器。

  一个WSGI真正强大的特性是中心件。中心件是一个可以在软件上添加各种功能的层。如今可以利用的的中心件相本地多。比方,你不再必要为本身的程序单独编写会话管理(HTTP是一个无状态协议,当一个用户关联数个HTTP哀求时,你的应用程序必须利用会话创建和管理状态)。压缩也可以用雷同的方式完成,已有中心件利用gzip压缩你的HTML从而节流服务器宽带。通过中心件,验证的题目也可以轻松办理。

  固然WSGI大概看起来很复杂,但开始学习WSGI的收益是很大的,由于WSGI和它关联的中心件已包办理了很多开辟网站会碰到的题目。

  WSGI服务器

  用来毗连像CGI和modpython如许的底层网关的代码就称为WSGI服务器_。此中一个代表是flup,它支持FastCGI和SCGI,尚有AJP。有一些服务器是用Python写的,比如flup。但也存在用C完成的,可以作为更换利用。

  如今可以利用的WSGI服务器有很多,以是一个用Python写的Web应用险些可以摆设在任何地方。这也是Python和其他web技能相比的一大长处。

  拜见:在WSGIhomepage可以找到WSGI相干代码的概述,此中还包罗了一个涵盖很广的WSGI服务器列表。你大概对已经包罗在标准库中支持WSGI的模块感爱好,即:

wsgiref----一些WSGI开辟的小型实用工具和服务器

案例学习:MoinMoin

  WSGI到底给web应用开辟者带来了什么?让我们通过一个应用来相识。这个存在已久的Python应用最初并没有利用WSGI。

  MoinMoin是利用最广的wiki软件包中的一个。它创建于2000年,比WSGI还早了3年。旧的版本运行在CGI,mod_python,FastCGI上时都必要差别的代码。

  如今的版本添加了对WSGI的支持。通过WSGI,不必要胶水语言,MoinMoin可以摆设到恣意WSGI兼容的服务器。差别于前WSGI版本,如今MoinMoin作者大概在不知道的环境下就利用了WSGI服务器。

  模板-视图-控制器(Model-View-Controller)

  术语MVC常在"框架foo支持MVC"如许的形貌中出现。比起具体特定的API,MVC更像是对代码团体的一种构造情势。很多web框架利用这个模子来资助开辟者,给他们的程序带来清楚的布局。稍大型的web应用就有相称多的代码,以是从一开始拥有一个有效的布局黑白常紧张的。通过这种方式,只要提前相识MVC布局,纵然是其他框架的用户(大概乃至是其他语言,由于MVC不是Python独有的)也能轻松地明白代码。

  MVC代表三个组件:

模子。可以或许表现和修改的数据。在Python的框架中,一样平常由对象关系映射器(OR-Mapper)中的类来代表。

视图。这个组件的工作是向用户展示模子中的数据。此组件通常由模板实现。

控制器。这是用户与模子之间的一层。控制器对用户的动作作出相应(比方打开一些特定的URL),假如必要就关照模子去修改数据,并告诉视图部分要表现什么内容。

  固然人们大概以为MVC是一个复杂的计划模式,但实际上它不是。它被用在Python中,是由于究竟证明白它有助于创建简便,可维护的网站。

  条记:固然不是全部Python框架明白支持MVC,但这不紧张。创建网站的时间依然可以按照MVC模式,从用户交互逻辑(控制器)和模板(视图)中分离数据逻辑(模子)。因此也发起不要在模板中添加不须要的Python代码。否则就违背了MVC模式的工作理念,令程序变得难以明白和修改。

  拜见:英文Wikipedia有一篇关于MVC计划模式的文章。文中具体地列出了各种语言的web框架。

  网站的构成因素

  网站有着复杂的布局。为了减轻web开辟者的负担,让项目更轻易编写和维护,很多工具被开辟了出来。在其他语言的各种框架中都存在着雷同的工具。一样平常环境下不会有人逼迫开辟者利用这些工具,而且通常"最好"的工具都是不存在的。某些工具会简化开辟网站的流程,以是得当选择学习一部分还是不错的。

  拜见:实际网站的组件要比这里提到的要多得多。Python的wiki中有一个叫WebComponents的页面,内里有关于这些组件的具体叙述。

  模板

  只有少数的库可以答应Python代码和HTML肴杂。固然如许做很方便,但会导致代码非常地难以维护。基于这个缘故起因,模板就诞生了。在最简单的环境下,模板只是带有占位符的HTML文件。在添补完占位符后,HTML会被发送到用户的欣赏器上。

  Python已经内置了一种方法来构建简单的模板:

#asimpletemplate

template="htmlbodyh1Hello{who}!/h1/body/html"

print(template.format(who="Reader"))

  为了用繁芜的数据模子,判定和循环布局来天生复杂的HTML页面,像Python的for和if通常都是必要的。模板引擎恰好支持这种复杂的模板。

  很多用于Python的模板引擎都是独立于框架的。此中一些界说成了某种轻易上手的纯文本编程语言,部分缘故起因是它被限定在特定的作用域内。尚有模板利用XML,这就包管了它的输出肯定是有效的XML。固然,其他种类的尚有很多。

  有些框架发布了本身的模板引擎大概保举特定的一个。利用框架本身的大概保举的通常都是不错的。

  盛行的模板引擎包罗:

Mako

Genshi

Jinja

  拜见:由于用Python来完成一个模板引擎是相称轻易的,以是很多模板引擎为了引起开辟者的关注而开始了相互竞争。在wiki页面模板中列出了一个数量巨大且不绝增长的模板引擎列表。上面列出的三个被以为是"第二代"引擎,是相识模板引擎的好例子。

  数据长期性

  数据长期性,听起来很复杂,着实就是储存数据。数据大概来自博客条目标文本,布告栏的帖子,大概wiki页面的正文。固然,在web服务器中有多种差别的方式来存储信息。

服务器内部错误通知模板(服务器内部错误通知模板图片) 服务器内部错误关照
模板(服务器内部错误关照
模板图片)「服务器遇到内部错误请关闭服务器的」 行业资讯

  由于在处理惩罚百万级数据时有着有着精良的性能,像MYSQL大概PostgreSQL如许的关系型数据库常常被利用。但还存在着像SQLite一样的小型数据库。SQLite只利用一个单独的文件,附带于Python的sqlite3模块。它没有其他依靠。对于较小的站点,SQLite就充足了。

  关系型数据库通过一种称为SQL的语言举行查询。一样平常来说,Python程序员不太喜好SQL,由于他们喜好利用对象。通过利用一种叫ORM(ObjectRelationalMapping)的技能,Python对象可以生存在数据库中。在背景,ORM将全部面向对象的访问转化为SQL代码,以是开辟者不消留意太多。大多数的框架在利用各种ORM,而且利用的结果确实不错。

  第二种大概就是将数据存储在平凡的纯文本文件(偶然间称为"flatfiles")。对于简单的网站而言,这很轻易实现,但假如网站常常更新数据,那就表现得不如尽人意了。

  第三种大概则是利用面向对象的数据库(也称为"对象数据库")。这种数据库存储对象数据的方式与程序运行时对象在内存中布局化的方式靠近。(相比之下,ORM将对象数据存储为表中的数据行以及行之间的关系。)直接储存对象的长处是险些全部的对象都可以直接生存。反观关系型数据库,一些特别的对象就很难被表达。

  框架通常都会对选择哪种存储数据方式的题目上给点发起。除非有特别的应用场合,依照它给的发起一样平常都能很好地满意存储需求。

  拜见:

PersistenceTools列出了在文件体系中存储数据的各种方式。此中某些模块被包罗在标准库中

DatabasePrograming资助开辟者选择一种方式来生存数据

SQLAlchemy,Python中最强大的OR-Mapper。尚有Elixir,简化了SQLAlchemy的利用

SQLObject,另一个盛行的OR-Mapper

ZODB和Durus,两个面向对象的数据库

框架

  在为网站运行编写代码的过程中,必要涉及到多种服务。不管网站的复杂性怎样,它的目标是什么,提供特别服务的代码其工作方式都是一样的。在web开辟中,将常见题目的办理方法抽象出来转化为可复用的代码就叫做框架。大概你听说过最闻名的web开辟框架是RubyonRails,但Python也有本身的框架。此中有部分是受Rails开导大概是鉴戒了Rails的想法。不外在Rails诞生之前,很多框架就已经存在了很长时间。

  原来PythonWeb框架倾向于整合开辟网站必要的全部服务,并集成一系列的开辟工具。但没有哪两个web框架可以或许相互协作:没有颠末深图远虑的重构后,用A框架的开辟的程序是不能摆设在B框架上的。这种趋势推动了"minimalist"(极简主意)web框架的发展。这范例的框架只保存了让代码与http协议通讯的工具,其他服务则必要在上层通太过开的组件逐一添加。为了让框架之间能相互协作,一些标准应运而生。比如某个标准,可以答应差别的模板引擎相互更换利用。

  随着WSGI的出现,PythonWeb框架不停在向基于WSGI标准的互操纵性上发展。如今岂论是"全栈"的(提供开辟最复杂网站必要的全部工具)还是微型的(minimalist),大概其他恣意范例的web框架,都是由可运行在多个框架上的可复用组件聚集而成。

  多数的用户会大概选择一个拥有活泼社区的"全栈"框架。这些框架都渐渐地有了友爱的文档,而且提供了一种最简流程来引导开辟者在最短时间内完乐成能齐备的网站。

  一些值得关注的框架

  如今框架的数量多到难以置信,以是这里不大概都逐一提及。相对地,我们只简单地先容几个最盛行的框架。

  Django

  Django是一个包罗了数个精密耦合组件的框架。此中的组件都是重新写的,相互共同得很好。Django提供的ORM相称强大,而且简单易用。内置的在线用户管理界面可以或许让人们通过欣赏器编辑数据库中的数据。为了照顾不会Python的网页计划职员,它的模板引擎是基于文本的。它还支持模板继承和过滤器(雷同于Unix的管道)。Django附带了很多便利的特性,比方通过天生RSSfeeds和genericviews,险些不消写Python代码就可以创建一个网站。

  Django还拥有一个巨大的国际社区,内里的成员创建了无数的站点。为了拓展Django的常勤奋能,还存在着大量的插件。这部分归功于Django友爱的在线文档和Djangobook。

  条记:固然Django是MVC计划的框架,但它定名的方式有些不一样,你可以在DjangoFAQ中找到相干叙述。

  TurboGears

  Python另一个盛行的web框架是TurboGears。TurboGears利用现有的组件并用胶水语言组合它们,通过这种方法来实现无缝毗连。在选择组件的时间,TurboGears给予了用户充实的自由。比方ORM和模板引擎都可以改为利用非默认的软件。

  可以在TurboGearsdocumentation种找到相干文档,内里尚有视频教程。TurboGears也有一个活泼的社区,能答复最相干的题目。TurboGearsbook已经出书,这同样是一个学习TurboGears很好的出发点。

  TurboGears最新的版本是2.0,在WSGI支持和基于模组的架构的方向上更进一步。TurboGears2的WSGI技能栈是基于另一个盛行的组件兼容的web框架----Pylons。

  Zope

  框架Zope是一个"古老原始"的框架。它的化身Zope2是一个高度集成的全栈框架。它一个最风趣的特性是它与一个强大的面向对象数据库ZODB(ZopeObjectDatabase)精密连合。由于其高度的集成性,Zope终极的生态圈轻微有些孤立:为Zope编写的代码很难能在用在Zope以外的地方,反之亦然。Zope3开始致力于办理这个题目。Zope3将Zope重写成一套清楚独立的组件。这项工作开始于WSGI标准创建之前,但项目Repoze为Zope3添加了对WSGI的支持。Zope的组件已经在背后冷静地工作了很多年,Zope3则将这些组件开放给更广泛的Python社区。乃至促成一个新的基于Zope组件的框架:Grok

  当前最强大和最受欢迎的内容管理体系----Plone,就是基于Zope实现的。

  其他值得关注的框架

  实际可用的框架固然不止这些,尚有很多其他的框架值得一试。

  另一个被提到的框架是Pylons。Pylons很像TuroGears,但更夸大机动性,为此也捐躯了易用性。在Pylons中,险些每一个组件都可以被更换。这就导致了每个单独的组件都必要很多文档。Pylons是创建在Paste的底子上,而Paste是一个方便WSGI利用的工具集。

  这还不是全部。你可以在Pythonwiki中找到更多最新的信息。

  拜见:Pythonwiki包罗了一个范围很广的web框架列表。大部分框架都有本身的邮件列表和IRC频道,在对应项目标网站就能找到这些信息。

客户评论

我要评论