django + uwsgi,启动代码放在哪里?
我想把我的启动代码放在 mysite/__init__.py
这个文件里。
当我运行 python manage.py run
时,启动代码会被执行。
但是当我用 uwsgi 启动 Django 时,这段启动代码就没有被执行。
我试过把启动代码放在几个不同的地方,但在 uwsgi 启动时都没有执行。
我该怎么做才能在 uwsgi 启动时执行这段启动代码呢?
1 个回答
2
把你的启动代码放在一个单独的文件里,比如叫 startup.py
,然后修改这两个文件:
manage.py
# some code
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "[project name].settings")
if __name__ == "__main__":
import startup
# the rest of the code
[项目名称]/wsgi.py
# some code
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "[project name].settings")
import startup
# the rest of the code
注意顺序:导入代码的部分总是在设置 environ
之后(这可能不太重要,具体要看你的启动代码做了什么)。
在Django1.7中,你可以为每个应用使用 ready
函数。可以看看这个链接:
https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.AppConfig.ready