Mongodb在django中的使用(持续更新)

前言:
        项目要求django用mongodb作为后端库,看了网上的经验分享,在这里也记录一下自己的实际经验。
        django的官方文档中没有明文支持noSQL,之前试着用了djongo,发现配置中偶尔会有版本冲突的问题,但是项目催得急所以打算直接用mongoengine(个人比较熟悉),有兴趣的读者也可以参考一下djongo的官方文档。

2024年3月9日14:21:32更新:
本来想找组里的接口文档,结果发现没有共享,只能自己先研究研究,据说Django REST framework可以将mongdb的数据暴露为api,打算试试,毕竟不能统一用django作为框架调用api还是比较麻烦的。以下内容仅供测试连接使用,请不要直接用在开发环境中!

正文:

只需要注意两个地方:settings.py和应用中的models.py

1.settings.py:

默认的DATABASES直接注释掉即可,不需要注册应用,不需要添加所谓的MONGODB_DATABASES或者其他的导包操作(使用别名的注意顶格导入即可)

2.models.py中构建模型测试:

from mongoengine import *

connect(db='mongodbForDjango', host='localhost', port=27017)


class MyTestDB(Document):
    """
    这里是为了进行测试而设置的简单模型
    """

    field1 = StringField(max_length=100, required=True)
    field2 = IntField(null=True)
    field3 = ListField(StringField())

    # 这里主要是选集合
    meta = {
        'collection': 'temp',
    }


# 调用方法创建一个实例
test = MyTestDB(
    field1="anything",
    field3=["item1", "item2", "item3", ],
    field2=42
)

test.save()

(可以替换成任意的测试模型)

如果希望在应用初始化的时候就直接连接上数据库的话,可以直接在应用对应的__init__.py中添加连接数据库的字段:

from mongoengine import connect

connect(db='mongodbForDjango', host='localhost', port=27017)

(django version 4.2.11        mongoengine version 0.28.1)

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值