簡體   English   中英

Django Mongoengine無法連接到MongoDB

[英]Django Mongoengine unable to connect to MongoDB

我們已經使用Django 1.7Mongoengine 0.8.7MongoDB 2.4.7Python 3.4構建了環境。

我們已經安裝了django-rest-framework ,但是當我們嘗試運行該網站的示例時,出現以下錯誤:

ImproperlyConfigured at /users/

settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

Request Method:         GET
Request URL:         http://localhost:8000/users/
Django Version:         1.7
Exception Type:         ImproperlyConfigured
Exception Value:         

settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

Exception Location:         /Users/user_name/Development/projects/current_project/lib/python3.4/site-packages/django/db/backends/dummy/base.py in complain, line 18
Python Executable:         /Users/user_name/Development/projects/current_project/bin/uwsgi
Python Version:         3.4.1
Python Path:         

['.',
'',
'/Users/user_name/Development/projects/current_project/lib/python34.zip',
'/Users/user_name/Development/projects/current_project/lib/python3.4',
'/Users/user_name/Development/projects/current_project/lib/python3.4/plat-darwin',
'/Users/user_name/Development/projects/current_project/lib/python3.4/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin',
'/Users/user_name/Development/projects/current_project/lib/python3.4/site-packages']

這是我們根據發現的文檔在settings.py進行的更改:

import mongoengine

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

mongoengine.connect('database_name', username='root', password='password')


SESSION_ENGINE = 'mongoengine.django.sessions'
SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'

就我們所看到的而言,如果我們通過mongoengine.connect方法進行連接,則不應忽略ENGINE參數,但實際上是發現了此錯誤。 有人知道我們怎么解決嗎?

我像這樣在settings.py文件的末尾使用了mongodb設置

# Mongodb settings

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

MONGO_DATABASE_NAME = 'prod'


MONGOENGINE_USER_DOCUMENT = 'mongoengine.django.auth.User'

SESSION_ENGINE = 'mongoengine.django.sessions'
SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'

from mongoengine import connect
connect(MONGO_DATABASE_NAME)

將此添加到settings.py:

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

也許這對您有幫助。

經過研究,我們找到了解決問題的方法。

我們沒有遵循http://www.django-rest-framework.org/上的示例,而是遵循了快速入門指南 遵循本指南,我們已經解決了我們的問題。

非常感謝您提供所有答案!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM