我尝试将启动代码放在mysite/__init__.py
当我运行python manage.py run
时,将执行启动代码。
但是当我用uwsgi运行django时,这个启动代码没有被执行。
我试图将我的启动代码放在几个不同的地方,但是当uwsgi启动时,它们都没有被执行。
当uwsgi启动时,我该怎么做才能执行启动代码?
答案 0 :(得分: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