欢迎来到天天文库
浏览记录
ID:46385855
大小:283.04 KB
页数:32页
时间:2019-11-23
《tornado中文教程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、概览•Overview•下载和安装•模块索引o主要模块o底层模块•Tornado攻略o请求处理程序和请求参数o重写RequestHandler的方法函数o重定向(redirect)o模板oCookie和安全Cookieo用户认证o跨站伪造请求的防范o静态文件和主动式文件缓存o本地化oUI模块o非阻塞式异步请求o异步HTTP客户端o第三方认证o调试模式和自动重载•性能•生产环境下的部署•WSGI和GoogleAppEngine•注意事项和社区支持OverviewFriendFeed使用了一款使用Python编写的,相对简单的非阻塞式Web服务器。其应用程序使用的Web框架看起来有些像web.p
2、y或者Google的webapp,不过为了能有效利用非阻塞式服务器环境,这个Web框架还包含了一些相关的有用工具和优化。Tornado就是我们在FriendFeed的Web服务器及其常用工具的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接,因此Tornado是实时Web服务的一个理想框架。我们开发这个Web服务器的主要目的就是为了处理FriendFeed的实时功能——在FriendFeed的应用里每一个活动用户都会保持着一
3、个服务器连接。(关于如何扩容服务器,以处理数以千计的客户端的连接的问题,请参阅TheC10Kproblem)以下是经典的“Hello,world”示例:importtornado.ioloopimporttornado.webclassMainHandler(tornado.web.RequestHandler):defget(self):self.write("Hello,world")application=tornado.web.Application([(r"/",MainHandler),])if__name__=="__main__":application.listen(888
4、8)tornado.ioloop.IOLoop.instance().start()查看下面的Tornado攻略以了解更多关于tornado.web包的细节。我们清理了Tornado的基础代码,减少了各模块之间的相互依存关系,所以理论上讲,你可以在自己的项目中独立地使用任何模块,而不需要使用整个包。下载和安装自动安装:Tornado已经列入PyPI,因此可以通过pip或者easy_install来安装。如果你没有安装libcurl的话,你需要将其单独安装到系统中。请参见下面的安装依赖一节。注意一点,使用pip或easy_install安装的Tornado并没有包含源代码中的demo程序。手动
5、安装:下载tornado-1.2.1.tar.gztarxvzftornado-1.2.1.tar.gzcdtornado-1.2.1pythonsetup.pybuildsudopythonsetup.pyinstallTornado的代码托管在GitHub上面。对于Python2.6以上的版本,因为标准库中已经包括了对epoll的支持,所以你可以不用setup.py编译安装,只要简单地将tornado的目录添加到PYTHONPATH就可以使用了。安装需求Tornado在Python2.5,2.6,2.7中都经过了测试。要使用Tornado的所有功能,你需要安装PycURL(7.18.2或
6、更高版本)以及simplejson(仅适用于Python2.5,2.6以后的版本标准库当中已经包含了对JSON的支持)。为方便起见,下面将列出MacOSX和Ubuntu中的完整安装方式:MacOSX10.6(Python2.6+)sudoeasy_installsetuptoolspycurlUbuntuLinux(Python2.6+)sudoapt-getinstallpython-pycurlUbuntuLinux(Python2.5)sudoapt-getinstallpython-devpython-pycurlpython-simplejson模块索引最重要的一个模块是web,它
7、就是包含了Tornado的大部分主要功能的Web框架。其它的模块都是工具性质的,以便让web模块更加有用后面的Tornado攻略详细讲解了web模块的使用方法。主要模块•web-FriendFeed使用的基础Web框架,包含了Tornado的大多数重要的功能•escape-XHTML,JSON,URL的编码/解码方法•database-对MySQLdb的简单封装,使其更容易使用•template-基于Pyth
此文档下载收益归作者所有