使用Djongo连接Django与MongoDB报错:‘djongo’不是可用数据库后端
解决Django连接MongoDB时'djongo'后端无法导入的问题
问题重现
使用以下数据库配置尝试通过Djongo连接MongoDB:
DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': 'rede_social', 'HOST': 'mongodb+srv://blackwolf449:3CErLxvGLPM4rLsK@cluster0.w1ucl2e.mongodb.net/?retryWrites=true&w=majority', 'USER': 'blackwolf449', 'PASSWORD': '3CErLxvGLPM4rLsK' } }
执行后报错:
django.core.exceptions.ImproperlyConfigured: 'djongo' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of:
'mysql', 'oracle', 'postgresql', 'sqlite3'
解决步骤
确认Djongo已正确安装
在你的Python环境(若使用虚拟环境需先激活)中执行安装命令:pip install djongo若安装最新版后仍报错,尝试安装与当前Django版本兼容的Djongo版本,比如针对Django 4.x可执行:
pip install djongo==1.3.6验证环境一致性
确保运行Django项目的Python环境和安装Djongo的环境是同一个。如果用了虚拟环境,检查是否已激活环境再启动项目。检查版本兼容性
不同Django版本对Djongo有版本要求:比如Django 3.x适配Djongo 1.3.x系列,Django 2.x适配更早的版本。若不确定,可核对Djongo版本说明,安装匹配的版本。简化数据库配置(可选)
你的HOST链接已包含用户名和密码,可尝试移除单独的USER和PASSWORD项,简化配置:DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': 'rede_social', 'HOST': 'mongodb+srv://blackwolf449:3CErLxvGLPM4rLsK@cluster0.w1ucl2e.mongodb.net/?retryWrites=true&w=majority' } }
内容的提问来源于stack exchange,提问作者Vinicius Nequiz
相关产品推荐
相关产品推荐

