前言:

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的: 操作文档

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐