Django连接MongoDB数据库基本设置(附所有修改代码截图)

本文介绍如何在Django框架中使用MongoDB数据库,包括安装mongoengine库、配置settings.py和models.py文件,以及对比Django连接MySQL的区别。MongoDB在大数据量下检索效率高,且更灵活的数据存储方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django使用MongoDB数据库的优点

数据量大时,mongodb的检索效率比mysql更高

保存数据时,mongodb不会因为缺少某一项信息而报错,但是mysql会报错(除非手动设置这一项在数据库中可以为空)

条件准备

  • 电脑上安装有 MongoDB 数据库
  • 安装python的一个第三方库 mongoengine

安装mongoengine

pip install mongoengine

Django连接MongoDB,和连接myslq的不同之处有两点

  • settings.py 中的数据库配置
  • models.py 中的类

配置连接MongoDB数据库

修改settings.py文件

django连接mongodb数据库,只需指定一个数据库的名字即可

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    # 默认的sqlite3 不用删除
    'mongodb':{
    	# db_book 是MOngoDB数据库的名字
        'NAME':'db_book'
    }
}

在这里插入图片描述

db_book 是MongoDB的一个数据库名字,该数据库需要事先手动创建

再看一张连接mysql的settings.py 文件中关于数据库部分的图片

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'chaochao',
        'USER': 'root',
        'PASSWORD': 'chaochao666',
        'HOST': '',
        'PORT': '',
    }
}

在这里插入图片描述

编辑models.py 文件

import mongoengine
from book.settings import DATABASES
from datetime import datetime

# 使用connect()方法链接MongoDB
# NAME 会自动映射为 settings.py 中的数据库名
mongoengine.connect(DATABASES['mongodb']['NAME'])


# Create your models here.

# 此处继承的是 mongoengine.Document
class book(mongoengine.Document):
    isbn = mongoengine.StringField()  # 编号
    name = mongoengine.StringField()  # 书名
    author = mongoengine.StringField()  # 作者
    press = mongoengine.StringField()  # 出版社
    date = mongoengine.DateTimeField(default=datetime.now(), required=True)  # 出版时间
    kind = mongoengine.StringField()  # 分类

在这里插入图片描述

再来看一下连接 mysql 时的 models.py 文件

from django.db import models

# Create your models here.

class Person(models.Model):
    # 姓名 str类型
    name = models.CharField(max_length=20,verbose_name='姓名')
    # 年龄 int型
    age=models.IntegerField(verbose_name='年龄')
    # 成绩 float类型
    score = models.FloatField(verbose_name='成绩')

在这里插入图片描述

当我们在后台管理中添加一个数据后,打开MongoDB,可以看到数据已经添加成功

book 是 models.py 中设置的类名,默认使用类名作为MongoDB中的集合名

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值