Django集成Djongo连接MongoDB报数据库后端导入错误
报错核心原因
核心原因是项目settings.py中数据库ENGINE配置项填写错误,误将教程示例里的占位符mypackage作为路径前缀保留。Djongo安装完成后会作为独立顶层Python模块存在,项目中根本不存在mypackage.backends.djongo这个可导入路径,Python无法定位到对应数据库后端模块,首先触发ModuleNotFoundError,进一步导致Django抛出数据库后端不可用的ImproperlyConfigured异常。
修复操作步骤
- 确认依赖安装:先激活你跑项目用的虚拟环境,执行
pip install djongo安装对应驱动,注意版本匹配:Python3.10+Django3.2LTS环境搭配Djongo 1.3.6版本最稳定,不要用过高的Django版本避免ORM兼容问题。 - 修改数据库配置:打开项目目录下的
settings.py,找到DATABASES配置块,将错误的ENGINE值替换为Djongo官方提供的正确路径,不要保留任何自定义包前缀,参考配置如下:
DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': '你要使用的MongoDB库名', 'CLIENT': { 'host': 'MongoDB连接地址,本地部署默认填mongodb://127.0.0.1:27017', # 若MongoDB开启了账号认证,再补充下面两个配置项,无认证可删除 # 'username': 'MongoDB连接账号', # 'password': 'MongoDB连接密码', } } }
- 校验运行环境:配置保存后,先确认本地/远程MongoDB服务处于正常启动状态,再重新执行Django的迁移、启动命令即可。
常见踩坑提示
- 不要照搬老旧教程里的自定义后端路径配置,Djongo安装完成后不需要手动创建任何backends目录、不需要加任何自定义路径前缀,
ENGINE字段直接填djongo即可。 - 如果改完配置仍然报模块找不到的错误,先在虚拟环境终端执行
pip list查看已安装包列表,确认djongo安装在当前项目所用的虚拟环境中,不要把包装到全局Python环境导致虚拟环境内无法识别。 - 若后续跑迁移出现字段类型兼容报错,优先检查Django版本,不要使用4.0及以上版本的Django搭配当前稳定版Djongo,二者适配不完全。
内容的提问来源于stack exchange,提问作者Siddhesh Lanjekar
相关产品推荐
相关产品推荐

