django local_settings导入错误

2024-01-03

我想导入 local_settings.py 文件(不在我的 VCS 系统中)以覆盖 settings.py 中的数据库设置

为此,我在 settings.py 文件的最后添加了这些行。

try:
    from local_settings import *
except ImportError:
    print('Unable to load local_settings.py:')

当我使用python manage.py diffsettings我看到 settings.py 中的数据库设置没有更改,并且收到消息Unable to load local_settings.py:

我想知道为什么导入失败。

这是我的项目文件夹架构:

my_project_folder/
   my_project_folder/
       settings.py
       urls.py
       local_settings.py
       etc...
   app1/
   app2/
   static/
   manage.py
   docker-compose.yml
   etc...

这是我的 local_settings.py 的内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db_my_project',
        'PORT': 5432,
    }
}

这是settings.py中DATABASES设置的内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'my_project',
        'PASSWORD': 'my_password',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

在此先感谢您的帮助 !


它不起作用,因为你忘记了.在...前面local_settings.py(相对导入)。尝试from .local_settings.py import *,还要检查是否有__init__.py在当前文件夹中。

关于设置,我建议您将设置存储在settings文件夹。并为每个环境创建一个设置文件。创建一个base.py文件,其中包含基本设置,然后将其导入所有其他设置文件中。

这是结构:

├── project_name
│   ├── project_name
│   │   ├── settings
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── dev.py
│   │   │   ├── staging.py
│   │   │   └── prod.py
│   │   ├── __init__.py
│   │   ├── urls.py
│   │   └── wsgi.py
...

和一个设置文件(E.g :dev.py or local.py) :

try:
    from .base import *
except ImportError:
    print('Unable to import base settings file:')

# ...

尽可能使用相对导入。

关于数据库,您不应该将它们配置为base.py。在每个特定的设置文件中声明它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django local_settings导入错误 的相关文章

随机推荐