`

tornado: web.py 之 其他

 
阅读更多

第一个有意思的是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方法,大致流程如下:

  1. 检查请求是否合法(映射后的文件地址是否正确)
  2. 设置header:
    a. last-modified
    b. content-type
    c. Cache保存时间
    d. 任何额外的header(通过调用set_extra_headers方法)
    e. 根据request header中的“If-Modified-Since”,决定是否需要返回文件内容,或者简单返回304
    f. 如果需要返回文件内容,计算并设置etag
  3. 向buffer中写入(调用write方法)数据,并设置“Content-Length”

除此之外,还有一个有用的helper方法make_static_url,调用这个方法,会返回一个带有版本信息(v=???)的url

 

本来在web.py中还有几个比较重要的类UIModule和TemplateModule,不过简单看了一下基本没有明白到底在干毛,所以决定去看看template.py,之后回来再补上这两块内容。

分享到:
评论

相关推荐

    PyPI 官网下载 | tornado-1.0.tar.gz

    Tornado是一个开源的、高性能的Web服务器和异步网络库,最初由FriendFeed团队开发,后来被Facebook收购,并继续开源发展。 **Tornado 框架** Tornado是一个用Python编写的Web框架,同时也是一个异步网络库。它的...

    python web 轻量级框架

    如果你还没有安装,可以通过`pip install webpy`命令进行安装。 接着,创建一个Python文件,例如`app.py`,并在其中定义URL映射、处理函数和模板。以下是一个简单的示例: ```python import web urls = ( '/', '...

    80h_tornado:www.anger6.com网站原始码-网站

    "80h_tornado-master"很可能按照标准的Python项目结构组织,包括`main.py`或`app.py`作为入口文件,`settings.py`存储配置,`models.py`定义数据模型,`views.py`处理视图逻辑,以及`static`和`templates`目录分别...

    关于服务器——安装配置tornado

    创建一个新的 Python 文件,例如 `app.py`,然后导入 Tornado 相关模块并编写基本的 Web 应用: ```python import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get...

    tornado python web开发

    作为Web服务器,Tornado 有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它 Python web应用框架进行对比,结果最大浏览量超过第二名近40%。 性能: Tornado有 着优异的性能。它试图解决C10k问题,...

    django-tornado:如何在 Tornado 上运行 django 的示例

    设置您无需更改任何内容即可使用您自己的 Django 项目运行它,但是run_tornado.py这一行: os . environ [ 'DJANGO_SETTINGS_MODULE' ] = 'demosite.settings' # TODO: edit this DJANGO_SETTINGS_MODULE应该指向 ...

    PyPI 官网下载 | pytest-tornado-0.4.2.tar.gz

    Tornado包含了Web服务器、HTTP客户端/服务器、WebSocket支持以及其他网络相关的工具。 “pytest-tornado-0.4.2.tar.gz”这个压缩包包含的是pytest-tornado的0.4.2版本。解压后,通常会得到一个名为“pytest-tornado...

    python测验,hello-tornado.rar

    2. **处理器类**(如`handlers.py`):这些是处理特定URL请求的类,继承自`tornado.web.RequestHandler`。每个类通常有一个`get`或`post`方法来处理HTTP请求。 3. **模板文件**(如`templates/index.html`):...

    使用Nginx_Supervisor_tornado搭建web服务参考.pdf

    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服务.pdf

    本文将详细讨论如何使用Nginx、Supervisor以及Tornado框架来搭建一个高效的Web服务环境。 **2.1. Tornado** Tornado是一个异步网络库,最初由FriendFeed团队开发,后来被Facebook收购并开源。它主要设计用于处理高...

    tornado 简单项目结构

    Tornado 是一个强大的 Python Web 框架,它以其异步非阻塞 I/O 模型而著名,特别适合处理高并发场景。本项目结构针对的是一个基础的 Tornado 应用,旨在帮助初学者理解如何组织 Tornado 项目的文件和目录。下面将...

    learning-tornado-src:Tornado框架源码学习笔记

    tornado作为web框架和异步网络库,代码量过多,因此在分析tornado源码时,可以选择一些比较重要的模块来阅读,方式:current.py,gen.py,tcpserver.py,httpserver.py,ioloop .py,iostream.py,web.py等 ...

    python常见面试题集.docx

    最受欢迎的Python开源框架 1:Django 2:Twisted 3:Tornado 除了以上三种常用的开源框架外 还有 : Diesel、Flask、Cubes、Kartograph、Pulsar、Web2py、Falcon、DPark、Buildbot、Zerorpc、Bottle、webpy、Scrapy ...

    在windows下快速搭建web.py开发框架方法

     在 https://github.com/webpy/webpy上下载web.py安装包。注意github对浏览器版本有要求的,比如不支持IE9以下的。  自己根据需要下载相应的版本。  下载下来之后,解压,打开cmd,cd到解

    PythonWeb.zip

    PythonWeb.zip是一个包含使用Python语言和Tornado框架构建的Web应用程序的压缩文件。Tornado是一个开源的、高性能的Web服务器和异步网络库,最初由FriendFeed开发,并被Facebook收购后进一步发展。它以其轻量级、可...

    PyPI 官网下载 | tornadoweb-0.0.7-py2-none-any.whl

    "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

    本实例将探讨如何使用Tornado框架来实现一个简单的Todo应用,它是基于Web.py的Todo应用的改写版本。 首先,我们需要了解Tornado的基础架构。Tornado的核心组件包括`HTTPServer`、`RequestHandler`和`Application`。...

    Python库 | moesiftornado-0.1.2-py2.py3-none-any.whl

    Tornado是一个开源的、高性能的Web服务器和网络应用框架,特别适合编写异步网络应用。在Python社区中,Tornado因其非阻塞I/O模型和事件驱动的设计而受到推崇,它在处理大量并发连接时表现出色。 这个压缩包的描述...

    Python库 | headerparser-0.4.0-py2.py3-none-any.whl

    标题中的"Python库 | headerparser-0.4.0-py2.py3-none-any.whl"指的是一个Python库,名为headerparser,版本为0.4.0。这种格式的文件是Python的Wheel(轮子)文件,它是预编译的Python包,用于简化安装过程,可以...

Global site tag (gtag.js) - Google Analytics