当前位置: 首页 > news >正文

Django4.1.7通过djongo1.3.6链接mongoDB6.0.4

网上中文版的djongo链接mongoDB基本都是抄袭州的先生大哥的文章。
文章成文比较久,至少是2019年成文的了,有一些情况发生了变化,今天就自己测试的情况做一些记录。
本文成文日期为:2023年3月2日,请注意参考
废话不多说,直接说我遇到的3个问题。

1.djongo驱动不识别

错误信息:

django.core.exceptions.ImproperlyConfigured: ‘djongo’ isn’t an available database backend or couldn’t be imported. Check the above exception. To use ondjango.core.exceptions.ImproperlyConfigured: ‘djongo’ isn’t an available databasedjango.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,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.XX
X’, where XXX is one of:
‘mysql’, ‘oracle’, ‘postgresql’, ‘sqlite3’

根据:https://github.com/doableware/djongo/issues/594
中的MrYazdan大佬提示
pip install pytz
安装pytz这个包后该问题解决。

2.数据库链接错误

错误信息:

NotImplementedError: Database objects do not implement truth value testing or bool(). Please compare with None instead: database is not None

另一个连接报错信息为:

pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [WinError 10061] 由于目标计算机积极拒绝,无法连接。, Timeout: 30s, Topology Description: <TopologyDescription id: 64001613c2c8ebc2982285e6, topo
logy_type: Unknown, servers: [<ServerDescription (‘localhost’, 27017) server_type: Unknown, rtt: None, error=AutoReconnect(‘localhost:27017: [WinError 10061] 由于目标计算机积极拒绝,无法连接。’)>]>

比较明显,应该是地址配置错误了,导致他还是去连接localhost的地址。
原因为djongo的配置参数变化了:

    DATABASES = {'default': {'ENGINE': 'djongo',# 指定具体的数据库还是用NAME'NAME': 'your-db-name','ENFORCE_SCHEMA': False,# 对比州大佬使用的时候host被整合进了这个client中'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,                        }},},}}

再看一眼州大佬给出的配置

# 旧配置参考,当前版本:djongo:1.3.6以无法使用
DATABASES = {'default': {'ENGINE': 'djongo','ENFORCE_SCHEMA': True,'NAME': 'your-db-name',# 已经不能通过这种方式指定'HOST': 'host-name or ip address','PORT': port_number,'USER': 'db-username','PASSWORD': 'password','AUTH_SOURCE': 'db-name','AUTH_MECHANISM': 'SCRAM-SHA-1','REPLICASET': 'replicaset','SSL': 'ssl','SSL_CERTFILE': 'ssl_certfile','SSL_CA_CERTS': 'ssl_ca_certs','READ_PREFERENCE': 'read_preference'}
}

3.pymongo版本过高导致建表异常

错误信息:

TypeError: ‘Collection’ object is not callable. If you meant to call the ‘update’ method on a ‘Collection’ object it is failing because no such method exists.

NotImplementedError: Database objects do not implement truth value testing or bool(). Please compare with None instead: database is not None

将 Pymongo 降低版本至 3.12.1,当前最新版本为:pymongo-4.3.3
pip install pymongo==3.12.1

4.最终依赖情况

Django          4.1.7
django-simpleui 2023.3.1
djongo          1.3.6
dnspython       2.3.0
pip             23.0.1
pymongo         3.12.1
pytz            2022.7.1
setuptools      67.4.0
sqlparse        0.2.4
tzdata          2022.7
http://www.lryc.cn/news/25777.html

相关文章:

  • 如何使用FindFunc在IDA Pro中寻找包含指定代码模式的函数代码
  • 【C++】讲的最通透最易懂的关于结构体内存对齐的问题
  • Stochastic Approximation 随机近似方法的详解之(一)
  • 软件自动化测试工程师面试题集锦
  • 智合同丨教你做一个懂AI的法律人
  • 如何判断自己使用的IP是独享还是共享?
  • 跳石头
  • 上传gitee教程,Gitee怎么上传代码到仓库
  • netstat命令详解
  • 数据库三范式
  • K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
  • Vue2和Vue3响应式的区别
  • 模型实战(6)之Alex实现图像分类:模型原理+训练+预测(详细教程!)
  • 【大数据】最全的大数据Hadoop|Yarn|Spark|Flink|Hive技术书籍分享/下载链接,持续更新中...
  • RIG Exploit Kit 仍然通过 IE 感染企业用户
  • GIS在地质灾害危险性评估与灾后重建中的实践技术应用及python机器学习灾害易发性评价模型建立与优化进阶
  • SQL SERVER中SCHEMA的詳解
  • 【LeetCode】剑指 Offer(13)
  • 帮助小型企业实现业务增长的7种数字营销策略
  • 互联网行业的高级产品经理和普通产品经理有哪些区别?
  • aardio - 【库】简单信息框
  • 程序员必备!最值得收藏的宝藏网站大盘点
  • Android 10.0 Settings 关掉开发者模式
  • 软件测试面试必杀篇:【2023软件测试面试八股文宝典】
  • 原子级操作快速自制modbus协议
  • 大数据之Apache Doris_亚秒级响应_大数据处理分析_介绍_概述---大数据之Apache Doris工作笔记0001
  • SpringCloud学习笔记 - 分布式系统全局事务管理 - Seata1.5.2+Nacos+OpenFeign
  • LeetCode190_190. 颠倒二进制位
  • atomic 原子操作
  • DataGear 制作基于Vue前端框架渲染的数据可视化看板