Django DATABASES没有配置

时间:2017-05-31 19:16:08

标签: python django database python-2.7

所以我正在构建一个连接到查看旧版DB的Django站点。由于遗留MySQL dbs的一些限制,我需要访问一个视图。从我可以告诉最简单的方法是直接插入SQL。 (inspectdb不适用于视图)。

这是我到目前为止的代码:

from django.db import connection

cursor = connection.cursor()

sqlstring = 'SELECT * FROM Site_Call_Counts'

cursor.execute(sqlstring)
result = cursor.fetchall()

此代码在我将其输入manage.py shell时有效,但在我尝试完成运行时会中断。这是追溯。

/usr/bin/python2.7 /root/Desktop/IPNV/django-test/src/djangotest/viewTest.py
Traceback (most recent call last):
  File "/root/Desktop/IPNV/django-test/src/djangotest/viewTest.py", line 3, in <module>
    cursor = connection.cursor()
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 33, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 208, in __getitem__
    self.ensure_defaults(alias)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 176, in ensure_defaults
    conn = self.databases[alias]
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 156, in databases
    self._databases = settings.DATABASES
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 39, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured.

所以我真的有两个问题。首先,这是完成我需要的最简单的方法,第二,如果我是如何修复此错误。我查看了文档和帖子herehere。文档为django docs

这可能很明显,但我对编码更新,所以要温柔大声笑。

EDIT *** 这是我在settings.py(同一目录)中的数据库定义

 },
    'default': {
        'NAME': 'app2',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'admin',
        'PASSWORD': 'password',
        'HOST': '10.1.1.1',
        'PORT': '3306',

    },

1 个答案:

答案 0 :(得分:0)

已编辑以包含更好的代码段/示例。

如果您不打算创建Django项目但只在您的python文件中使用Django的ORM,您需要创建一个settings.py文件以及所有模型并初始化Django的配置如下:

from django.conf import settings
settings.configure(
    DATABASE_ENGINE = 'postgresql_psycopg2',
    DATABASE_NAME = 'db_name',
    DATABASE_USER = 'db_user',
    DATABASE_PASSWORD = 'db_pass',
    DATABASE_HOST = 'localhost',
    DATABASE_PORT = '5432',
    TIME_ZONE = 'America/Havana',
)

在导入connection之前。

检查hereofficial docs。还有一些很好的例子here