Django + WSGI:什么时候调用 wsgi.py?
Django + WSGI: When is wsgi.py called?
我通过 Apache2 在服务器上部署了我的 Django 项目。
我的问题是我有两个设置模块:settings.py
是我的本地开发设置,settingsprod.py
是我的生产设置。
我在 WSGI.py 中找到以下行:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings")
这个模块是不是只有在使用WSGI的时候才会调用?如果是的话,这是一个像这样使用我的生产设置的好地方吗?
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settingsprod")
对于本地开发,我像这样使用开发服务器:
python3 manage.py runserver
那还是默认为settings.py吗?
是的,您的设置符合预期。尽管如果您使用芹菜等额外工具,您可能还需要为这些设置指定 settingsprod
。
我处理这种情况的方式恰恰相反:我使用 settings.py
作为我的生产设置,并有一个额外的 settings_development.py
用于所有开发任务。这样我就不必记住在所有与生产相关的文件中设置生产设置,而只需像这样使用开发设置进行开发:
python3 manage.py runserver --settings=proj.settings_development
如果您经常使用 manage.py 命令并希望节省一些打字时间,您可以复制您的 manage.py
,例如作为 manage_dev.py
并像这样更改设置模块行:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings_development")
然后调用您的管理函数:
python3 manage_dev.py runserver
我通过 Apache2 在服务器上部署了我的 Django 项目。
我的问题是我有两个设置模块:settings.py
是我的本地开发设置,settingsprod.py
是我的生产设置。
我在 WSGI.py 中找到以下行:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings")
这个模块是不是只有在使用WSGI的时候才会调用?如果是的话,这是一个像这样使用我的生产设置的好地方吗?
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settingsprod")
对于本地开发,我像这样使用开发服务器:
python3 manage.py runserver
那还是默认为settings.py吗?
是的,您的设置符合预期。尽管如果您使用芹菜等额外工具,您可能还需要为这些设置指定 settingsprod
。
我处理这种情况的方式恰恰相反:我使用 settings.py
作为我的生产设置,并有一个额外的 settings_development.py
用于所有开发任务。这样我就不必记住在所有与生产相关的文件中设置生产设置,而只需像这样使用开发设置进行开发:
python3 manage.py runserver --settings=proj.settings_development
如果您经常使用 manage.py 命令并希望节省一些打字时间,您可以复制您的 manage.py
,例如作为 manage_dev.py
并像这样更改设置模块行:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings_development")
然后调用您的管理函数:
python3 manage_dev.py runserver