在过去几个月里,有没有人在Django(+1.10)中替换MongoDB的默认数据库引擎?我在Google上获得的所有信息都与6年或4年前相似。将Django +1.10连接到MongoDB
最公地结果包括MongoDB的发动机需要Django的nonrel(从Django的1.5真的老了叉),或mongoengine,也是给许多错误过时的库,所以当你接一个,你会得到一个新的。
我不知道是否有任何“新”的方式来实现这一点。
在过去几个月里,有没有人在Django(+1.10)中替换MongoDB的默认数据库引擎?我在Google上获得的所有信息都与6年或4年前相似。将Django +1.10连接到MongoDB
最公地结果包括MongoDB的发动机需要Django的nonrel(从Django的1.5真的老了叉),或mongoengine,也是给许多错误过时的库,所以当你接一个,你会得到一个新的。
我不知道是否有任何“新”的方式来实现这一点。
看着https://djangopackages.org/grids/g/mongodb/,没有生产就绪的MongoDB库。除了您提到的其他软件包之外,还有其他一些软件包,例如https://github.com/jazzband/django-mongonaut,但它们都处于测试阶段,它们有很多问题,并且它们不适用于最新版本的Django。
与多家建造和使用泊坞窗尝试不同的版本组合的测试,我设法使用下面的版本以达到一个稳定和工作的Django MongoDB的应用:
Django==1.10.0
pymongo==2.7.1
six==1.10.0
mongoengine==0.9.0
安装所需的库后,编辑您的settings.py更新或添加以下内容
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.dummy'
}
}
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
from mongoengine import *
connect('database_name', host='host_ip', port=27017)
更改数据库名称和主机IP。如果没有说明ip,它会默认连接到本地主机。
现在,运行您的应用程序应该已连接数据库并且可以使用。 有关如何使用它的信息,请查看mongoengine documentation。
有多种方式可以集成MongoDB和Django。根据您采取的策略,您可能最终头痛或顺利起航!
作为Web开发人员,你可能需要的Django连接的MongoDB的挑战有两种方式:
使用MongoDB的兼容模型框架:在你的Django项目使用像MongoEngine或明第三方框架。然而将错过:
Django的SQL到MongoDB的transpiler - Djongo:战略是把由Django的ORM生成到pymongo命令Django的SQL查询语法。 Djongo是一个SQL到MongoDB查询编译器。它将每个SQL查询字符串转换为一个mongoDB查询文档。因此,
如果您正在寻找更多信息,只需添加一行代码就可以找到关于Using Django with MongoDB的文章。否则,您可以直接跳到djongo documentation并开始使用它。
你有什么发现? –
在Django中使用Mongodb似乎不是一个好主意,因为它具有最好的ORM之一,并且不会使用Django杀手功能。 – vtisnado
@vtisnado你解决了这个问题吗?我在使用MongoDB的Djnago 1.11中面临同样的问题 – jignasha