资讯专栏INFORMATION COLUMN

Python:Tornado 第四章:Tornado网站部署:第一节:调试模式

desdik / 2070人阅读

摘要:上一篇文章第三章概念及应用第三节客户端编程下一篇文章第四章网站部署第二节静态文件之前着重讲解的编程知识点,所有之前的例子都使用最简单的启动方式运行。

上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及应用:第三节:客户端编程
下一篇文章:Python:Tornado 第四章:Tornado网站部署:第二节:静态文件

之前着重讲解Tornado的编程知识点,所有之前的例子都使用最简单的IOLoop启动方式运行。本节学习如何优化Tornado的运行方式,以达到快捷、易用及资源利用优化的目的。

到目前为止,本章通过如下方式启动tornado程序:

def make_app():
    return tornado.web.Application([
        #此处写入映射
    ])
def main():
    app=make_app()  #建立Application对象
    app.listen(8888) #设置监听端口
    IOLoop.current().start()  #启动IOLoop

if __name__ == "__main__":
    main()

通过这种方式启动的程序一旦出错,则只能通过Windows任务管理器或Linux命令行Kill掉Python进行。因为调试需要频繁地进行:启动→差错→停止→排错→重启...的迭代流程,所以这样简单的方法并不利于程序调试,本节学习如何简化调试流程。

1、自动加载

通过向Application实例传入参数debug=True,可以将程序以调试模式启动,例如:

def make_app():
    return tornado.web.Application([
        #此处写入映射
    ],
    debug=True  #调试模式
    )

在这种模式下开发者可以获得如下便利:

自动加载:对项目中任何*.py源文件的修改将导致程序自动重启并加载修改后的代码文件。这样极大地简化了开发者因为调试器需要频繁重启。

错误追溯:当RequestHandler;处理用户访问出现异常时,系统的错误信息调用栈将被推送到浏览器中,使得调试者可以马上查找错误的根源。

禁用模板缓存:在运营环境中模板缓存能提高效率,但在调试期间占用了更多的系统资源,所以将其禁用有利于开发者进行调试。

注意:在运营环境中不要开启Debug模式,这样会增加网站被攻击的危险。
2、Ctrl+C退出机制

在默认情况下Tornado的IOLoop不会响应Linux控制台的Ctrl+C命令,导致程序无法便捷地退出运行。

要响应Linux控制台的Ctrl+C命令,则可以在运行中捕获KeyboardInterrupt异常并调用IOLoop.stop()函数:

def main():
    app=make_app()  #建立Application对象
    app.listen(8888) #设置监听端口
    try:
        #启动IOLoop
        tornado.ioloop.IOLoop.current().start()
    except KeyboardInterrupt:
        tornado.ioloop.IOLoop.current().stop()
        #此处执行资源回收工作
        print("Program exit!")

if __name__ == "__main__":
    main()

这也在控制台发送了Ctrl+C请求后,程序可有机会回收系统的其它资源并退出执行。

注意:在Windows平台上,产生KeyboardInterrupt中断的方式是Ctrl+Pause

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44796.html

相关文章

  • PythonTornado 四章Tornado网站部署:第二节:静态文件

    摘要:提供了两种方式进行配置静态文件路径与服务器本地路径的关联关系。通常这些静态文件的目录与网站的代码文件有某种相对关联关系,可以通过下面这样的方法将该参数设置为相对路径此处写入映射即指定静态目录为本程序文件所在目录的子目录。 上一篇文章:Python:Tornado 第四章:Tornado网站部署:第一节:调试模式下一篇文章:Python:Tornado 第四章:Tornado网站部署:第...

    trilever 评论0 收藏0
  • PythonTornado 第三章:HTML5 WebSocket概念及应用:第三节:客户端编程

    摘要:上一篇文章第三章概念及应用第二节服务端编程下一篇文章第四章网站部署第一节调试模式由于是的标准之一,所以主流浏览器的客户端编程语音已经支持的客户端编程。此事件发生在收到了来自服务器的消息时。此事件发生在通信过程中有任何错误时。 上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及应用:第二节:服务端编程下一篇文章:Python:Tornado 第四章:T...

    miguel.jiang 评论0 收藏0
  • PythonTornado 四章Tornado网站部署:第三节:运营期配置

    摘要:上一篇文章第四章网站部署第二节静态文件后台运行一般调试过程中我们使用运行网站,方便我们在命令行中看运行状况。默认情况下,会监控子进程,并在任何程序意外终止时重生。配合实现多进程在中添加接受命令行参数可在配置文件中添加使用代理 上一篇文章:Python:Tornado 第四章:Tornado网站部署:第二节:静态文件 1、后台运行 一般调试过程中我们使用python app.py运行网...

    Donald 评论0 收藏0
  • PythonTornado 第二章:实战演练:开发Tornado网站一节网站结构:Hello

    摘要:上一篇文章第一章异步及协程基础第三节协程下一篇文章第二章实战演练开发网站第二节网站结构路由解析实例浏览器输入链接页面显示下面逐行解析上面的代码做了些什么首先通过语句引入包中的和类。该对象的第一个餐食用于定义程序的路由映射。 上一篇文章:Python:Tornado 第一章:异步及协程基础:第三节:协程下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第...

    Taonce 评论0 收藏0
  • PythonTornado 第一章:异步及协程基础:一节:同步与异步I/O

    摘要:上一篇文章开篇下一篇文章第一章异步及协程基础第二节关键字协程是种推荐的编程方式,使用协程可以开发出简捷高效的异步处理代码。同步操作,导致进程阻塞,直到操作完成异步操作,不会导致请求进程阻塞。 上一篇文章:Python:Tornado 开篇下一篇文章:Python:Tornado 第一章:异步及协程基础:第二节:Python关键字yield 协程是Tornado种推荐的编程方式,使用协...

    Anleb 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<