# apps.py
from django.apps import AppConfig
from django.utils.autoreload import autoreload_started
def my_watchdog(sender, **kwargs):
sender.watch_file('/tmp/foo.bar')
# to listen to multiple files, use watch_dir, e.g.
# sender.watch_dir('/tmp/', '*.bar')
class EggsConfig(AppConfig):
name = 'eggs'
def ready(self):
autoreload_started.connect(my_watchdog)
Django>;=2.2
autoreloading得到了一次重大的改进(感谢@Glenn,他通知了this comment中即将到来的更改),这样就不必再使用未记录的Django特性并将文件附加到
_cached_filenames
中。相反,注册自定义信号侦听器,监听自动重读启动:Django<;2.2
Django将监视的文件路径存储在
django.utils.autoreload._cached_filenames
列表中,因此向其中添加或删除项将强制Django启动或停止监视文件。在至于你的问题,这是(有点老套的)解决办法。为了演示的目的,我修改了
^{pr2}$apps.py
,这样文件在django初始化之后就开始被监视了,但是可以随意地将代码放在任何您想放的地方。首先,将文件创建为django只能查看已存在的文件:在django应用程序中:
现在启动服务器,在另一个控制台中修改监视的文件:
服务器现在应该触发自动重新加载。在
相关问题 更多 >
编程相关推荐