`

玩蛇记-使用Tornado构建高性能Web之二-autoreload

阅读更多

书接上回,在本系列的第一部分,我们创建了一个helloword的应用,并且能够通过浏览器访问它,这样我们就可以用Tornado来开发网站了,嗯,这是可喜的第一步,不过当你决定了用tornado开发网站,并且开始写新的handler的时候,你会发现需要频繁的,关掉,再重新启动服务器,这是一件非常让人抓狂的事情,我们需要在程序修改后,服务能够自动reload新的代码,和asp.net一样。但是tornado的文档实在是有限,在文档上找不到相关的任何说明。

但是山穷水尽疑无路柳暗花明又一村,无意在源代码里发现了一个autoreload.py的文件

image

猜想其实tornado是可以自己reload的,不过文档里没有说明,但是autoreload要怎么用呢。打开这个文件,看到其实里面很简单,只有两个函数,如下图

image

第二个函数是私有的,所以实际上start就是唯一的入口,我们在代码中发现,_reload_on_update函数其实在start中被作为一个回调函数注册到了io_loop中了,所以实际上我们只需要把ioloop传入start就可以实现autoreload了。所以将

def main():
    tornado.options.parse_command_line()
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

 

这些代码改为:

def main():
    tornado.options.parse_command_line()
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(options.port)
    loop=tornado.ioloop.IOLoop.instance()
    tornado.autoreload.start(loop)
    loop.start()

这样子就行了。

注意,这里的reload只检测py文件的变动,如果是其他文件发生变动,比如css,图片这些,都不会引发reload。

分享到:
评论
1 楼 xi4nyu 2011-05-26  
如果启动Application中的settings 的debug 设为True,也会自动 加载.

相关推荐

    人工智能-项目实践-tornado-基于Tornado实现,系统核心调度,可分布式扩展.zip

    人工智能-项目实践-tornado-基于Tornado实现,系统核心调度,可分布式扩展 修改配置 对settings 里面的配置文件进行修改,主要是数据库 缓存 消息队列 修改 doc/nginx_ops.conf 的server_name 例如 改为 task....

    tutorial-python-microservice-tornado:使用Tornado构建,测试和分析高效的微服务

    教程:使用Tornado构建,测试和分析高效的微服务 0.获取源代码 获取该教程的源代码: $ git clone https://github.com/scgupta/tutorial-python-microservice-tornado.git $ cd tutorial-python-microservice-...

    PyPI 官网下载 | pysolr-tornado-4.0.0a2.tar.gz

    总之,pysolr-tornado-4.0.0a2为Python开发者提供了一种高效的方式与Solr进行异步交互,提高了在高并发环境下的性能。通过理解和熟练使用这个库,开发者可以更好地构建和优化基于Solr的搜索应用。

    tornado 框架 -python web 异步

    Tornado 是一个强大的 Python Web 开发框架,以其高性能和异步网络I/O闻名。它最初由 FriendFeed 团队开发,后来被 Facebook 收购并开源。Tornado 的设计目标是处理大量的并发连接,尤其适合长连接和实时Web应用,如...

    PyPI 官网下载 | dp-tornado-0.3.9.tar.gz

    《PyPI官网下载 dp-tornado-0.3.9.tar.gz 深度解析》 在Python的世界里,PyPI(Python Package Index)是官方的软件仓库,它为开发者提供了无数的开源模块和库,方便他们构建自己的项目。本文将深入探讨PyPI上下载...

    VxWorks--tornado.zip_vxworks

    VxWorks 是由美国WRS (风河)公司开发的一个运行在目标机上的高性能、可裁剪的 嵌入式实时操作系统。目前我们使用的Tornado集成开发环境为设计VxWorks应用程序提供 了一套高效、实用的调试手段和方法。

    Python库 | tornado-6.1-cp36-cp36m-manylinux1_x86_64.whl

    **Python库Tornado 6.1...总的来说,Tornado是一个强大且灵活的工具,无论是在构建高性能的Web服务还是实时应用上,都展现出了其卓越的能力。对于Python开发者来说,熟练掌握Tornado能够极大地提升开发效率和应用性能。

    Tornado使用指南(中文版)

    Tornado是一款高性能、异步网络库,最初由FriendFeed开发,后被Facebook收购并开源。它以其非阻塞I/O模型和Web服务器能力在Python社区中广受欢迎,尤其适用于高并发场景。Tornado不仅是一个Web框架,还包含了一个...

    tornado python web开发

    Tornado全称Tornado Web Server,是一个用Python语 言写成的Web服 务器兼Web应用框架,由FriendFeed公 司 在自己的网站FriendFeed中使用,被Facebook收购 以后框架在2009年9月以开源软件形式开放给大众。 特点: 作为...

    python后端服务project-of-tornado.rar

    Tornado 是一个轻量级、高性能的 Web 服务器和异步网络库,特别适合于长连接和实时Web应用。 标题 "project-of-tornado.rar" 提示这是一个关于 Tornado 的项目压缩包,很可能包含了源代码、配置文件和其他相关资源...

    Python-一个基于TornadoWeb框架的简单的RESTFulAPI库

    Tornado Web框架是Python中的一个轻量级、高性能的异步网络库,适用于构建可处理大量并发连接的Web应用。Tornado以其非阻塞I/O模型和对WebSockets的良好支持而闻名,是构建实时Web服务的理想选择。 **RESTful API**...

    Tornado WebServer

    **Tornado Web Server详解** Tornado Web Server,简称Tornado,是一个开源的、高性能的Web服务器和异步网络库,最初由...无论你是初学者还是经验丰富的开发者,Tornado都是构建高性能Web应用的一个值得考虑的工具。

    Python-tornado专栏中-18.Tornado-个人信息案例前端样式

    在本篇【Python-tornado专栏中-18.Tornado-个人信息案例前端样式】中,我们将探讨如何使用Tornado框架构建一个包含前端样式的个人信息展示页面。Tornado是一个轻量级的Python Web服务器和异步网络库,常用于构建高...

    Python库 | tornado-swirl-0.1.9.tar.gz

    《Python库Tornado-Swirl:构建高性能网络应用的利器》 Tornado-Swirl,一个基于Python的轻量级库,是Tornado框架的扩展,版本0.1.9,封装了Tornado的一些功能,旨在帮助开发者更高效地构建高性能、异步网络应用...

    ubuntu-python3-whisper-tornado docker镜像

    ubuntu-python3-whisper-tornado docker镜像,可下载直接使用

Global site tag (gtag.js) - Google Analytics