Categories: Python Tornado教程

Tornado 自动检测开发中的代码更改

修改源文件时自动重启服务器。

大多数应用程序不应直接访问此模块。 相反,将关键字参数 ​autoreload=True​ 传递给 ​tornado.web.Application​ 构造函数(或 ​debug=True​,这将启用此设置和其他几个设置)。 这将启用自动重新加载模式以及检查模板和静态资源的更改。 请注意,重新启动是一种破坏性操作,当进程重新启动时,任何正在进行的请求都将被中止。 (如果您想在使用其他调试模式功能时禁用自动重载,请同时传递 ​debug=True​ 和 ​​autoreload=Fals​e​)。

该模块也可以用作脚本的命令行包装器,例如单元测试运行器。

命令行包装器和应用程序调试模式可以一起使用。 鼓励这种组合,因为包装器会捕获语法错误和其他导入时失败,而调试模式会在服务器启动后捕获更改。

当使用 ​HTTPServer的多进程模式时,该模块将无法正常工作。

重新加载会丢失任何 Python 解释器命令行参数(例如 -u),因为它使用 ​sys.executable​ 和 ​sys.argv​ 重新执行 Python。 此外,修改这些变量将导致重新加载行为不正确。

tornado.autoreload.start(check_time: int = 500) → None

开始观察源文件的变化。

在 5.0 版中更改: ​io_loop参数(自 4.1 版以来已弃用)已被删除。

tornado.autoreload.wait() → None

等待监视的文件更改,然后重新启动该过程。

旨在用于单元测试运行器等脚本的末尾,以在任何源文件更改后再次运行测试

tornado.autoreload.watch(filename: str) → None

将文件添加到监视列表。

默认情况下会监视所有导入的模块。

tornado.autoreload.add_reload_hook(fn: Callable[[], None]) → None

在重新加载进程之前添加一个要调用的函数。

请注意,对于打开的文件和套接字句柄,通常最好设置 ​FD_CLOEXEC标志(使用 ​fcntl或 ​os.set_inheritable​)而不是使用重新加载挂钩来关闭它们。

tornado.autoreload.main() → None

命令行包装器,用于在其源更改时重新运行脚本。

脚本可以由文件名或模块名指定:

python -m tornado.autoreload -m tornado.test.runtests
python -m tornado.autoreload tornado/test/runtests.py

使用此包装器运行脚本类似于在脚本末尾调用 tornado.autoreload.wait,但此包装器可以捕获导入时问题,例如语法错误,否则会阻止脚本对​wait调用。

terry

这个人很懒,什么都没有留下~

Share
Published by
terry

Recent Posts

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 小时 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

1 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

2 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

2 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

3 周 ago

聊聊React和Vue组件更新的实现及区别

React 和 Vue 都是当…

4 周 ago