Mongoengine:ConnectionError:您尚未定义默认连接

c24*_*24b 6 python django mongodb mongoengine

在我的新Django项目中,我设置了一个MongoDb数据库并使用mongoengine模块,但是我无法在视图中的shell中正确访问dabase nore."ConnectionError:您尚未定义默认连接"

我的settings.py包括以下内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DaTaBaSe',                      
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost', 
        'PORT': '3306',                  
    },
    'tracking': {
        'ENGINE': 'django.db.backends.dummy',
        'NAME': 'analytics',
    }
}



import mongoengine
SESSION_ENGINE = 'mongoengine.django.sessions'
mongoengine.connect(_MONGODB_NAME, 'localhost:27017')
AUTHENTICATION_BACKENDS = (
       'mongoengine.django.auth.MongoEngineBackend',
        )
Run Code Online (Sandbox Code Playgroud)

在models.py中导入mongoengine

from mongoengine import *
from myproject.settings import _MONGODB_NAME
mongoengine.connect(_MONGODB_NAME, 'localhost:27017')
Run Code Online (Sandbox Code Playgroud)

提前感谢您的帮助

bio*_*div 17

我没有对此进行过深入的测试,但到目前为止它对我有用:

mongoengine.connect('yourdb', alias='default')


NiK*_*001 7

在您的 settings.py 文件中替换:

mongoengine.connect(_MONGODB_NAME, 'localhost:27017')
Run Code Online (Sandbox Code Playgroud)

使用以下代码(注意添加的“ host= ”):

mongoengine.connect(_MONGODB_NAME, host='localhost:27017')
Run Code Online (Sandbox Code Playgroud)


小智 0

要将 django 与 MongoDB 一起使用,请不要使用https://www.djangoproject.com上提供的 django 软件包并安装其他软件包(例如 mongoengine),如果按照此过程您会发现很多困难。

相反,您需要使用 django 的 no@rel 版本,它是从 djangoproject 分叉出来的,并添加了 MongoDB 支持,我相信它将使设置过程和开发过程变得更加容易。

点击此链接安装并设置 Django 与 MongoDB。 http://django-mongodb-engine.readthedocs.org/en/latest/topics/setup.html

在设置 django 时,您可能还会发现以下错误。

“*Django-nonrel 和 MongoDB 上的错误:AutoField(默认主键)值必须是表示 MongoDB 上的 ObjectId 的字符串(改为 u'1')。请确保您的 SITE_ID 包含有效的 ObjectId 字符串。*”

请点击此链接进行修复。

https://gist.github.com/ielshareef/2986459

如果您需要更多帮助,请告诉我。

  • 你不需要 django-nonrel 来使用 MongoDB,mongoengine 有 django 支持。 (2认同)