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

时间:2017-02-28 14:45:34

标签: django python-2.7 settings

我是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']

请帮帮我。提前谢谢。

4 个答案:

答案 0 :(得分:3)

如果您想在 projectB 中使用projectA.settings.DATABASES,则应在 projectB 中添加 projectA 路径:

<强>项目B /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']

答案 1 :(得分:1)

您可以使用dj-database-url轻松地从环境变量加载数据库设置,而不是在python中对您的凭据进行硬编码。

另一种选择是使用<body ng-controller="mainController"> 和一个小的json文件。

答案 2 :(得分:1)

在项目2的settings.py中,您可以将project1设置文件导入为:

import project1.settings

然后将DATABASES初始化为:

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

答案 3 :(得分:1)

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'}
}