Python Uwsgi:donds';t与django'合作;s设置作为一个包
我正在尝试使用package拆分django的设置,这篇文章给我留下了深刻的印象 我的问题是我不认识我的project.settings包 [一些歌词] 对于secrets.py,我稍微修改了它的结构,所以除了存储在github中的secrets.py和由ansible管理的secret.py之外,所有文件都被修改了 因此,我现在的设置是一个具有以下结构的包:Python Uwsgi:donds';t与django'合作;s设置作为一个包,python,django,deployment,settings,uwsgi,Python,Django,Deployment,Settings,Uwsgi,我正在尝试使用package拆分django的设置,这篇文章给我留下了深刻的印象 我的问题是我不认识我的project.settings包 [一些歌词] 对于secrets.py,我稍微修改了它的结构,所以除了存储在github中的secrets.py和由ansible管理的secret.py之外,所有文件都被修改了 因此,我现在的设置是一个具有以下结构的包: project/ ├── manage.py └── project ├── __init__.py ├── setti
project/
├── manage.py
└── project
├── __init__.py
├── settings
│ ├── __init__.py
│ ├── defaults.py
│ ├── development.py
│ ├── production.py
│ ├── staging.py
│ └── secrets.py
├── urls.py
└── wsgi.py
重要档案内容:
settings/\uuuuu init\uuuuuu.py
# Appropriate config load based on DJANGO_ENVIRONMENT env
# variable, which set at system boot
ENVIRONMENT = os.getenv("DJANGO_ENVIRONMENT")
if ENVIRONMENT == "production":
from production import *
elif ENVIRONMENT == "staging":
from staging import *
elif ENVIRONMENT == "development":
from development import *
import os
import secrets
SECRET_KEY = secrets.SECRET_KEY
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': secrets.DATABASE_NAME,
'USER': secrets.DATABASE_USER,
'PASSWORD': secrets.DATABASE_PASSWORD,
'HOST': 'localhost',
'PORT': '',
}
}
# and so on, almost default
SECRET_KEY = '1YdCOUsWeKk&BWDa$PI6X1@IdUH5vjkjcB^v&k3J@*fRRVRPrW'
DATABASE_NAME = 'mydb'
DATABASE_USER = 'myuser'
DATABASE_PASSWORD = '1l3S7KURpd1MYPOr'
设置/开发.py
from .defaults import *
DEBUG = True
INSTALLED_APPS += (
'debug_toolbar',
)
设置/默认值.py
# Appropriate config load based on DJANGO_ENVIRONMENT env
# variable, which set at system boot
ENVIRONMENT = os.getenv("DJANGO_ENVIRONMENT")
if ENVIRONMENT == "production":
from production import *
elif ENVIRONMENT == "staging":
from staging import *
elif ENVIRONMENT == "development":
from development import *
import os
import secrets
SECRET_KEY = secrets.SECRET_KEY
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': secrets.DATABASE_NAME,
'USER': secrets.DATABASE_USER,
'PASSWORD': secrets.DATABASE_PASSWORD,
'HOST': 'localhost',
'PORT': '',
}
}
# and so on, almost default
SECRET_KEY = '1YdCOUsWeKk&BWDa$PI6X1@IdUH5vjkjcB^v&k3J@*fRRVRPrW'
DATABASE_NAME = 'mydb'
DATABASE_USER = 'myuser'
DATABASE_PASSWORD = '1l3S7KURpd1MYPOr'
settings/secrets.py
# Appropriate config load based on DJANGO_ENVIRONMENT env
# variable, which set at system boot
ENVIRONMENT = os.getenv("DJANGO_ENVIRONMENT")
if ENVIRONMENT == "production":
from production import *
elif ENVIRONMENT == "staging":
from staging import *
elif ENVIRONMENT == "development":
from development import *
import os
import secrets
SECRET_KEY = secrets.SECRET_KEY
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': secrets.DATABASE_NAME,
'USER': secrets.DATABASE_USER,
'PASSWORD': secrets.DATABASE_PASSWORD,
'HOST': 'localhost',
'PORT': '',
}
}
# and so on, almost default
SECRET_KEY = '1YdCOUsWeKk&BWDa$PI6X1@IdUH5vjkjcB^v&k3J@*fRRVRPrW'
DATABASE_NAME = 'mydb'
DATABASE_USER = 'myuser'
DATABASE_PASSWORD = '1l3S7KURpd1MYPOr'
DJANGO_环境
$ echo $DJANGO_ENVIRONMENT
development
-----------------------------------------------------------------------------------------
此时,我可以启动管理runserver
和检查
,而不会出现问题:
$ python manage.py check
System check identified no issues (0 silenced).
但是,如果我尝试使用UWSGI,我会在UWSGI-error.log中得到错误(我的项目名称是pdfupload):
虚拟环境不使用
请帮助我完成此设置。您的DJANGO\u设置\u模块必须指向实际设置文件,因此在您的情况下:
pdfupload.settings.defaults (or whatever in your settings folder)
DJANGO_设置_模块必须指向实际设置文件,因此在您的情况下:
pdfupload.settings.defaults (or whatever in your settings folder)