繁体   English   中英

将 settings.py 移出 django 项目,如何设置以使其正常工作?

[英]Moving settings.py out of django project, how to set up to make it in work correctly?

1 我的项目目录结构:

    ├── project_one
        ├── conf
        ├── dist
        ├── logs
        ├── backend_server
        ├── front_web
        ├── logs
        ├── uwsgi.sh
        └── venv3.5

2 backend_server是我的 Django 项目:


├── backend_server
    ├── app1
    ├── app2
    ├── manage.py
    ├── README.md
    ├── requirements.txt
    ├── backend_server
    ├── templates
    └── utils

为了方便起见,现在我想将backend_server.settings.py移动到conf目录中。


3 conf/uwsgi.ini:

chdir=/home/rookie/project_one/backend_server
module=backend_server.wsgi
enable-threads=True
...
http=0.0.0.0:port

4 backend_server.wsgi.py


import os
import sys


from django.core.wsgi import get_wsgi_application


os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend_server.settings')

application = get_wsgi_application()

当我使用uwsgi启动我的项目时,它失败了,我不知道如何纠正这个错误。

你能帮我解决这个问题吗?

从原始代码中可以看出,DJANGO_SETTINGS_MODULE 是 Python 模块路径,而不是文件路径。 您需要确保conf目录或其父目录在 pythonpath 上,并通过点号表示法引用它。

所以你可以做例如:

sys.path.append('/path/to/project_one/conf')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')

既然您已经完成了此操作,您几乎肯定需要更改 ROOT_URLCONF 设置以指向主 urls.py 所在的位置,因为它与设置不在同一位置。

请注意,这整个事情听起来一团糟,尤其是当 wsgi 文件保留在 backend_server 目录中时。 我会仔细考虑你为什么要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM