我正在尝试将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连接到本地数据库,但遇到了同样的错误。我该怎么解决?
答案 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
的详细信息