码迷,mamicode.com
首页 > 移动开发 > 详细

Application类如何通过debug参数实现auto-reload功能

时间:2014-11-19 15:47:51      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   文件   

代码执行过程及分析:

  1. 我们在主函数实例化Application类的时候,传入参数"debug=True"(在python中,诸如‘ **settings ‘的参数类型允许传入带参数名的参数,其实就是传入dictionary)
    1 app = tornado.web.Application(
    2         handlers=[(r/, IndexHandler)],
    3         template_path=os.path.join(os.path.dirname(__file__), "templates"),
    4         static_path=os.path.join(os.path.dirname(__file__), "static"),
    5         debug=True
    6     )
  2. 实例化Application类的同时,将调用其构造函数,以下贴出与参数"debug=True"相关的代码进行分析:
     1 if self.settings.get(debug):
     2     self.settings.setdefault(autoreload, True)
     3     self.settings.setdefault(compiled_template_cache, False)
     4     self.settings.setdefault(static_hash_cache, False)
     5     self.settings.setdefault(serve_traceback, True)

    由于传入的debug值为True,将依次执行self.settings.get(‘debug‘)函数语句,此时设置‘autoreload‘的值为True, ‘compiled_template_cache‘的值为False, ‘static_hash_cache‘的值为False, ‘serve_traceback‘的值为True.

  3. autoreload模块实现自动重启服务器     autoreload被设置为“True”后, Application类的构造函数将继续执行以下函数:
1  # Automatically reload modified modules
2    if self.settings.get(autoreload):
3        from tornado import autoreload
4        autoreload.start()

         此时服务器尝试重新启动

       4.

           bubuko.com,布布扣

 

     综上而言,在对Application类实例化的时候,传入"debug=True"参数将实现代码的动态解释,每次当.py文件内容改变时,Tornado都是自动重启服务器,而我们刷新页面后也能看到新的调试效果,无需自己频繁地开启服务器。

     资料参考:http://www.tornadoweb.org/en/stable/web.html#tornado.web.Application

 

Application类如何通过debug参数实现auto-reload功能

标签:style   blog   http   io   ar   color   os   sp   文件   

原文地址:http://www.cnblogs.com/Rigel-sysu/p/4108209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!