在过去几个月中,有人替换了MongoDB的Django(+ 1.1.10)中的默认数据库引擎吗?我在谷歌获得的所有信息都是6年或4年前的。
最常见的结果包括 mongodb-engine ,它需要 django-nonrel (来自Django 1.5的非常老的分支)或 mongoengine ,也是一个过时的库,它会产生很多错误,因此当你修补一个错误时,你会得到一个新错误。
我不知道是否有任何新的"实现这一目标的方法。
答案 0 :(得分:4)
使用docker进行多次构建和测试以尝试不同的版本组合,我设法使用以下版本访问稳定且可用的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,它会默认尝试连接到localhost。
现在,运行您的应用应该已连接数据库并准备使用。 检查mongoengine documentation以获取有关如何使用它的信息。
答案 1 :(得分:2)
有多种方法可以集成MongoDB和Django。根据您采取的策略,您可能会头痛或顺利航行!
作为Web开发人员,您可以通过两种方式应对将Django连接到MongoDB的挑战:
使用与MongoDB兼容的模型框架:在django项目中使用MongoEngine或Ming等第三方框架。但是会错过:
Django SQL到MongoDB转发器 - Djongo :策略是将Django ORM生成的Django SQL查询语法转换为pymongo命令。 Djongo是一个SQL to MongoDB查询编译器。它将每个SQL查询字符串转换为mongoDB查询文档。结果,
如果您正在寻找更多信息,请在Using Django with MongoDB上添加一行代码,只需添加一行代码即可。否则,您可以直接跳转到djongo documentation并开始使用它。
答案 2 :(得分:1)
查看https://djangopackages.org/grids/g/mongodb/,没有生产就绪的MongoDB库。除了你提到的那个之外还有其他一些软件包,比如https://github.com/jazzband/django-mongonaut,但它们都处于测试阶段,它们存在许多问题,并且它们不能与最新版本的Django一起使用