django 文件监听重启排除指定目录

大家都知道 django 在调试模式下是会监听文件变化 从而自动重启动的,遇到一些特殊情况,比如希望能够根据文件变化自动重启但是也希望某些文件夹里面的文件不受到监听 比如测试用例 比如测试报告等等

下面这个方法是通过源码加配置自定义排除指定监听文件夹

1.跳转到源码

引入此模块通过编辑器进入源文件
# coding:utf-8
from django.utils import autoreload

2.修改指定内容(文件变化监听函数)

代码大概位置383行 注释部分是源码 注释下面的是修改过的 用修改代码替换源码即可
class StatReloader(BaseReloader):
    SLEEP_TIME = 1  # Check for changes once per second.

    def tick(self):
        mtimes = {}
        while True:
            for filepath, mtime in self.snapshot_files():
                # old_time = mtimes.get(filepath)
                # mtimes[filepath] = mtime
                # if old_time is None:
                #     logger.debug("File %s first seen with mtime %s", filepath, mtime)
                #     continue

                from django.conf import settings
                for _ in settings.NO_MONITOR:
                    if str(filepath) in str(_):
                        old_time = False
                    else:
                        old_time = mtimes.get(filepath)
                mtimes[filepath] = mtime
                if old_time is None:
                    logger.debug("File %s first seen with mtime %s", filepath, mtime)
                    continue
                elif old_time is False:
                    logger.debug("文件 %s 是自定义排除的", filepath)
                    continue

3.配置排除的文件夹或文件(settings.py)

直接在settings.py配置一个排除监听文件的配置即可
NO_MONITOR = [
    os.path.join(BASE_DIR, "test\\app.py"),
    os.path.join(BASE_DIR, "test"),
]

4.重启服务即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值