Ole*_*siy 6 django django-command-extensions
我喜欢django服务器如何在代码更改时自动重新加载自身,因此无需重新启动服务器。
当前,我们使用django自定义管理命令,这可能需要很长时间才能完成。
有什么方法可以对我们的管理命令使用django服务器的自动重载功能?
例如,如果检测到基础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)
Run Code Online (Sandbox Code Playgroud)
对于django 2.2或更高版本使用
autoreload.run_with_reloader(do_something, args=None, kwargs=None)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1332 次 |
最近记录: |