如何将Django Rest-api与MongoDB连接?

时间:2018-07-16 06:13:10

标签: django mongodb

我正在尝试将Django rest-api与在mlab.com上创建的mongo数据库连接。以下是我在Django rest-api的settings.py文件中定义的代码。

MONGODB_DATABASES = {
    'default': {
        'NAME': 'dummy',
        'HOST': os.environ.get('MONGO_HOST', 
          'mongodb://dummyuser:dummypassword@ds125851.mlab.com:25851/dummy'),
    }
}

mongoengine.connection(
    db='dummy',
    host=os.environ.get('MONGO_HOST', 
       'mongodb://dummyuser:dummypassword@ds125851.mlab.com:25851/dummy'),
)

运行此api时出现此错误

  

host = os.environ.get('MONGO_HOST','mongodb:// dummyuser:dummypassword@ds125851.mlab.com   :25851 / dummy'),
  typeError:“模块”对象不可调用

我尝试在线搜索解决方案,但发现了一些较旧版本的示例。我使用的是Djangorestframework2.0.7,MongoDB3.4和mongoengine0.15。我找不到此版本的任何答案。我试图将此api连接到本地数据库,但遇到了同样的错误。我该怎么解决?

2 个答案:

答案 0 :(得分:2)

我已成功将django rest-api与mongodb连接。这是适合我的解决方案。

数据库= {     '默认':{         'ENGINE':'djongo',         'NAME':'dummy',         'HOST':'localhost',     } }

MONGODB_DATABASES = {     'db':'虚拟',     '主机':'本地主机',     '端口':27017, }

此处是更多信息的链接。 http://blog.tomjohnhall.com/python-3-6-django-2-0-and-mongodb-3-4-3-6/

答案 1 :(得分:0)

您可以尝试以下步骤将django 2.0或更高版本与MongoDB数据库连接:

1)为django 2.0安装mongoengine

pip install -e git+https://github.com/MongoEngine/django-mongoengine.git#egg=django-mongoengine

2)将它们添加到您的设置文件中:

from mongoengine import *

'django_mongoengine', // Add this line to installed app

MONGODB_DATABASES = {
"default": {
"name": '<db_name>',
"host": 'localhost',
"password": '',
"username": '',
"tz_aware": True, # if you using timezones in django (USE_TZ = True)
},
}

您可以找到查询数据库here

的详细信息