使用MongoDB作为Django的后端:运行错误" python manage.py migrate"

时间:2016-04-02 02:28:17

标签: python django mongodb python-2.7 django-models

我是Django的新手,并希望将django与Mongodb一起用作后端。我从互联网上给出的例子开始。但是当我试图运行迁移时遇到问题。

已安装:django 1.8,pymongo 2.8,mongodb

Models.py

 from __future__ import unicode_literal
 from mongoengine import *

 class Choice(EmbeddedDocument):
        choice_text = StringField(max_length=200)
        votes = IntField(default=0)

 class Poll(Document):
    question = StringField(max_length=200)
    pub_date = DateTimeField(help_text='date published')
    choices = ListField(EmbeddedDocumentField(Choice))

Setttings.py:创建了一个用户"芒果"在mongodb。 mongodb运行良好

import mongoengine
from mongoengine import connect

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.dummy',
    },
}

SESSION_ENGINE = 'mongoengine.django.sessions'

_MONGODB_USER = 'mango'
_MONGODB_PASSWD = 'mango'
_MONGODB_HOST = 'localhost'
_MONGODB_NAME = 'performance'
_MONGODB_DATABASE_HOST = \
    'mongodb://%s:%s@%s/%s' \
    % (_MONGODB_USER, _MONGODB_PASSWD, _MONGODB_HOST, _MONGODB_NAME)

mongoengine.connect(_MONGODB_NAME, host=_MONGODB_DATABASE_HOST)

AUTHENTICATION_BACKENDS = (
    'mongoengine.django.auth.MongoEngineBackend',
)

我试图运行python manage.py migrate,它抛出了以下错误。但我能够从shell连接到Db。请有人帮助我理解这个问题吗?

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 302, in execute
    settings.INSTALLED_APPS
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 55, in __getattr__
    self._setup(name)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 99, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\Users\pm348b\Desktop\Praneeth_Desktop\Python_Programs\TEST\mysite\mysite\settings.py", line 118, in <module>
    mongoengine.connect(_MONGODB_NAME, host=_MONGODB_DATABASE_HOST)
  File "C:\Python27\lib\site-packages\mongoengine\connection.py", line 165, in connect
    return get_connection(alias)
  File "C:\Python27\lib\site-packages\mongoengine\connection.py", line 128, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
mongoengine.connection.ConnectionError: Cannot connect to database default :
command SON([('saslStart', 1), ('mechanism', 'SCRAM-SHA-1'), ('autoAuthorize', 1), ('payload', Binary('n,,n=mango,r=OTc3NDkxNTE3NTM3', 0))]) on namespace performance.$cmd failed: Authentication failed.

1 个答案:

答案 0 :(得分:0)

DATABASES = {
'default': {
    'ENGINE': 'djongo',
    'NAME': 'Name of the Cluster',
    'HOST': 'The link which mongo provides for python',
    'USER': "Created User's username",
    'PASSWORD': 'Password of the above user',
}

在您的settings.py文件中使用此