我在我的项目 website
中使用此设置布局:
settings
├── base.py
├── dev.py
└── __init__.py
在我的 manage.py
文件中,有设置路径:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'website.settings')
我的 __init__.py
文件:
import os
try:
from .base import * # noqa
except ImportError:
pass
if os.environ.get('DJANGO_DEVELOPMENT') != 'prod':
from .dev import * # noqa
try:
from .local import * # noqa
print('----> Imported')
except ImportError:
print('----> No local settings found')
基本上,如果不是环境prod,则导入dev,如果本地文件存在,则导入。在 base.py 中有共享的所有设置,在开发或本地文件中,我替换值取决于我的个人要求。在生产中,我通过 ansible 部署 local.py。我可以看到,文件在那里,我正在为 sqlite 和 ALLOWED_HOSTS 或 DEBUG 设置数据库路径。在生产日志中,我可以看到消息 ----> Imported
所以我认为这应该有效,但是:
----> Imported
两次。local.py
文件甚至 base.py
文件中更改数据库名称时,没有进行任何更改,而且日志中也没有错误。这是我的本地文件:from website.settings import base # I tried with include base first, did not help
DEBUG = False
ALLOWED_HOSTS = ['mydomain.com']
STATIC_ROOT = '/static/'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/data/db/db.sqlite345',
}
}
我希望,我的数据库名称将是 db.sqlite345
但它仍然是 db.sqlite3
- 默认。
我的目标是将 db 存储在已安装的卷 /data/db
中。
mydomain.com/hello
)时,我收到错误消息 未找到。没错,看起来 DEBUG 已设置为 False。版本: django==3.1.7