如何从settings.py获取数据库详细信息



我是Python的新手。我需要从另一个目录中的另一个文件访问python文件。特别是我希望能够查看这些数据库详细信息,这些详细信息在名为settings.py的文件中:

DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dynamic',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '192.168.10.130',
    }
}

如何从另一个文件夹中的另一个文件访问该字典作为数据库?

我试图这样做(在我的另一个项目中起作用):

from django.conf import settings
dbHost = settings.DATABASES['default']['HOST']
dbUsername = settings.DATABASES['default']['USER']
dbPassword = settings.DATABASES['default']['PASSWORD']
dbName = settings.DATABASES['default']['NAME']

请帮助我。预先感谢。

如果要在 projectb 中使用 projectA.settings.DATABASES,则应在 projectb 中添加 Projecta 路径:

projectb /myfile.py:

import sys
sys.path.append( "/path/to/projectA" )
from projectA import settings
dbHost     = settings.DATABASES['default']['HOST']
dbUsername = settings.DATABASES['default']['USER']
dbPassword = settings.DATABASES['default']['PASSWORD']
dbName     = settings.DATABASES['default']['NAME']
from django.conf import settings
settings.DATABASES
{'default': 
    {'ATOMIC_REQUESTS': False,
    'AUTOCOMMIT': True,
    'CONN_MAX_AGE': 3600,
    'ENGINE': 'django.db.backends.mysql',
    'HOST': '127.0.0.1',
    'NAME': 'proj',
    'OPTIONS': {'charset': 'utf8', 'sql_mode': 'traditional'},
    'PASSWORD': 'password',
    'PORT': '20306',
    'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None},
    'TIME_ZONE': None,
    'USER': 'root'}
}

,而不是在Python中使用硬编码您的凭据,您可以使用dj-database-url轻松从环境变量加载db设置。

另一个选项是使用json.load()和一个小JSON文件。

settings.py of Project 2,您可以将Project1设置文件导入:

import project1.settings

然后将数据库初始化为:

DATABASES = { 'default': project1.settings.DATABASES['default'] }

最新更新