【问题标题】:Django + WSGI: When is wsgi.py called?Django + WSGI:什么时候调用wsgi.py?
【发布时间】:2017-12-07 10:17:39
【问题描述】:

我通过 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 吗?

【问题讨论】:

    标签: python django apache settings mod-wsgi


    【解决方案1】:

    是的,您的设置按预期工作。但如果您使用 celery 等额外工具,您可能还需要为这些设置指定 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2014-03-27
      • 2014-08-01
      • 1970-01-01
      • 2010-10-18
      • 2016-03-08
      • 1970-01-01
      相关资源
      最近更新 更多