首页 > 解决方案 > Django manage.py - 区分 runserver 和/或从其他命令上下文运行的实际服务器?

问题描述

假设我有一些代码在很多 Django管理/维护命令urls.py中确实不应该运行。除了直接和明确地检查之外,有没有办法知道代码正在加载的上下文?sys.argv

...

def setup_at_startup():
   """code here would definitely fail on python manage.py makemigrations/migrate
      let's suppose it's runtime introspection code to discover some services but doesn't run well if django admin tables dont exist
   """
   #pseudo-code
   if django.command in ("makemigrations", "migrate", "<others>"):   
       return
   do-code-that-blows-up 

#gets run at import urls.py time.
setup_at_startup()

...

什么是一个很好的便携式测试方法,包括通过 gunicorn 等访问 Django?

另外,考虑到这个导入是由 Django 发起的django.settings,从我的代码的 POV 来看,很可能还不可用。

标签: djangomaintenance

解决方案


推荐阅读