第一个有意思的是RedirectHandler,它的代码和思路都比较有趣,代码很短,直接看:
class RedirectHandler(RequestHandler): """Redirects the client to the given URL for all GET requests. You should provide the keyword argument "url" to the handler, e.g.:: application = web.Application([ (r"/oldpath", web.RedirectHandler, {"url": "/newpath"}), ]) """ def initialize(self, url, permanent=True): self._url = url self._permanent = permanent def get(self): self.redirect(self._url, permanent=self._permanent)
StaticFileHandler:
其中最重要的是get方法,大致流程如下:
- 检查请求是否合法(映射后的文件地址是否正确)
- 设置header:
a. last-modified
b. content-type
c. Cache保存时间
d. 任何额外的header(通过调用set_extra_headers方法)
e. 根据request header中的“If-Modified-Since”,决定是否需要返回文件内容,或者简单返回304
f. 如果需要返回文件内容,计算并设置etag - 向buffer中写入(调用write方法)数据,并设置“Content-Length”
除此之外,还有一个有用的helper方法make_static_url,调用这个方法,会返回一个带有版本信息(v=???)的url
本来在web.py中还有几个比较重要的类UIModule和TemplateModule,不过简单看了一下基本没有明白到底在干毛,所以决定去看看template.py,之后回来再补上这两块内容。
相关推荐
Tornado是一个开源的、高性能的Web服务器和异步网络库,最初由FriendFeed团队开发,后来被Facebook收购,并继续开源发展。 **Tornado 框架** Tornado是一个用Python编写的Web框架,同时也是一个异步网络库。它的...
如果你还没有安装,可以通过`pip install webpy`命令进行安装。 接着,创建一个Python文件,例如`app.py`,并在其中定义URL映射、处理函数和模板。以下是一个简单的示例: ```python import web urls = ( '/', '...
"80h_tornado-master"很可能按照标准的Python项目结构组织,包括`main.py`或`app.py`作为入口文件,`settings.py`存储配置,`models.py`定义数据模型,`views.py`处理视图逻辑,以及`static`和`templates`目录分别...
创建一个新的 Python 文件,例如 `app.py`,然后导入 Tornado 相关模块并编写基本的 Web 应用: ```python import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get...
作为Web服务器,Tornado 有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它 Python web应用框架进行对比,结果最大浏览量超过第二名近40%。 性能: Tornado有 着优异的性能。它试图解决C10k问题,...
设置您无需更改任何内容即可使用您自己的 Django 项目运行它,但是run_tornado.py这一行: os . environ [ 'DJANGO_SETTINGS_MODULE' ] = 'demosite.settings' # TODO: edit this DJANGO_SETTINGS_MODULE应该指向 ...
Tornado包含了Web服务器、HTTP客户端/服务器、WebSocket支持以及其他网络相关的工具。 “pytest-tornado-0.4.2.tar.gz”这个压缩包包含的是pytest-tornado的0.4.2版本。解压后,通常会得到一个名为“pytest-tornado...
2. **处理器类**(如`handlers.py`):这些是处理特定URL请求的类,继承自`tornado.web.RequestHandler`。每个类通常有一个`get`或`post`方法来处理HTTP请求。 3. **模板文件**(如`templates/index.html`):...
wget http://en.tornadoweb.cn/tarballs/tornado-2.2.tar.gz tar xvzf tornado-2.2.tar.gz cd tornado-2.2 python setup.py build sudo python setup.py install ``` 接下来是Supervisor,这是一个用Python编写的...
本文将详细讨论如何使用Nginx、Supervisor以及Tornado框架来搭建一个高效的Web服务环境。 **2.1. Tornado** Tornado是一个异步网络库,最初由FriendFeed团队开发,后来被Facebook收购并开源。它主要设计用于处理高...
Tornado 是一个强大的 Python Web 框架,它以其异步非阻塞 I/O 模型而著名,特别适合处理高并发场景。本项目结构针对的是一个基础的 Tornado 应用,旨在帮助初学者理解如何组织 Tornado 项目的文件和目录。下面将...
tornado作为web框架和异步网络库,代码量过多,因此在分析tornado源码时,可以选择一些比较重要的模块来阅读,方式:current.py,gen.py,tcpserver.py,httpserver.py,ioloop .py,iostream.py,web.py等 ...
最受欢迎的Python开源框架 1:Django 2:Twisted 3:Tornado 除了以上三种常用的开源框架外 还有 : Diesel、Flask、Cubes、Kartograph、Pulsar、Web2py、Falcon、DPark、Buildbot、Zerorpc、Bottle、webpy、Scrapy ...
在 https://github.com/webpy/webpy上下载web.py安装包。注意github对浏览器版本有要求的,比如不支持IE9以下的。 自己根据需要下载相应的版本。 下载下来之后,解压,打开cmd,cd到解
PythonWeb.zip是一个包含使用Python语言和Tornado框架构建的Web应用程序的压缩文件。Tornado是一个开源的、高性能的Web服务器和异步网络库,最初由FriendFeed开发,并被Facebook收购后进一步发展。它以其轻量级、可...
"PyPI 官网下载 | tornadoweb-0.0.7-py2-none-any.whl" 这个标题指的是从Python的官方第三方库仓库Python Package Index (PyPI) 下载的一个特定版本的Tornado Web框架,即tornadoweb-0.0.7-py2-none-any.whl。...
本实例将探讨如何使用Tornado框架来实现一个简单的Todo应用,它是基于Web.py的Todo应用的改写版本。 首先,我们需要了解Tornado的基础架构。Tornado的核心组件包括`HTTPServer`、`RequestHandler`和`Application`。...
Tornado 的设计灵感来源于 web.py 和 Google 的 webapp,但为了充分利用非阻塞服务器的优势,它增加了一系列特有工具和优化。 **基础概念** 1. **非阻塞I/O**:Tornado 使用非阻塞I/O模型,通过事件驱动和epoll...
Tornado是一个开源的、高性能的Web服务器和网络应用框架,特别适合编写异步网络应用。在Python社区中,Tornado因其非阻塞I/O模型和事件驱动的设计而受到推崇,它在处理大量并发连接时表现出色。 这个压缩包的描述...
标题中的"Python库 | headerparser-0.4.0-py2.py3-none-any.whl"指的是一个Python库,名为headerparser,版本为0.4.0。这种格式的文件是Python的Wheel(轮子)文件,它是预编译的Python包,用于简化安装过程,可以...