前言:
Django在settings中默认可以配置的数据库有:mysql、 oracle、 postgresql、 sqlite3等;
我们如果想在Django中使用MongoDB数据库,一般大多数都是使用的三方库:mongoengine,
来做模型设计及链接使用,因为这样就可以像Django中的orm一样,来操作MongoDB数据库;
而如果我们想在Django中像配置mysql,oracle等关系型数据库来配置并操作MongoDB呢?
这样是不是就可以直接使用Django的ORM来操作MongoDB呢?
其实Django官方文档中有说明,可以默认配置其他数据库,只是,不建议使用非关系型数据库
下面我们一起来看下,如何默认使用MongoDB吧
安装第三方库
注意哦,安装的是djongo,不是django
pip install djongo
以下为官方文档中,完整的数据库配置文件
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'your-db-name',
'ENFORCE_SCHEMA': False,
'CLIENT': {
'host': 'host-name or ip address',
'port': port_number,
'username': 'db-username',
'password': 'password',
'authSource': 'db-name',
'authMechanism': 'SCRAM-SHA-1'
},
'LOGGING': {
'version': 1,
'loggers': {
'djongo': {
'level': 'DEBUG',
'propagate': False,
}
},
},
}
}
MongoDB默认是不开启用户验证的,所以,不需要添加用户及密码,只需要有ip or address and port
DATABASES = {
'default': {
'ENGINE': 'djongo', # 填写上面安装的模块:djongo
'ENFORCE_SCHEMA': True, # True:确保模型架构和数据库架构完全相同。引发Migration Error的差异而发生。
# 'ENFORCE_SCHEMA': False, # False:(默认)隐式创建集合。返回缺失的字段None而不是引发异常。
'NAME': 'test', # 填写数据库名字
'CLIENT': {
'host': '10.70.12.13', # ip or address
'port': 27017 # port (default=27017)
}
}
}
当然,如果想你的MongoDB开启用户验证,则需要将MongoDB数据库配置文件:mongod.cfg做以下修改,修改后重启数据库即可生效
# mongod.cfg 文件中找到以下字段
#security:
authorization: enabled
以上就是在Django中使用MongoDB做为默认链接数据库,Django中的ORM,基本上都可以直接使用来操作MongoDB,想看完整数据库文档,可以访问Django的: 操作文档