我喜欢 django 服务器在代码更改时自动重新加载的方式,因此不需要重新启动服务器。
我们目前使用 django 自定义管理命令,可能需要很长时间才能完成。
Is there any way we can use the auto-reloading feature of the django server for our management command?
例如,如果检测到底层 django 代码库发生更改,该命令会重新加载自身并恢复执行很长(无状态)的循环。
最佳答案
无论您的管理命令在做什么,请将其抽象为单个函数并使用django.utils.autoreload.main
调用该函数
from django.utils import autoreload
def do_something(*args, **kwargs):
# management command logic
class Command(BaseCommand):
def handle(self, *args, **options):
self.stdout('This command auto reloads. No need to restart...')
autoreload.main(do_something, args=None, kwargs=None)
对于 django 2.2 或更高版本使用
autoreload.run_with_reloader(do_something, args=None, kwargs=None)
关于django - 重用 django 代码自动重新加载功能来自定义管理命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6271719/