一、安装与配置
Djongo的项目官方地址为:https://nesdis.github.io/djongo/,我们可以通过pip命令直接安装djongo:
pip install djongo
在安装完成之后,我们就可以直接在Django中配置MongoDB数据库的信息了。
在正常情况下,我们的Django项目中数据库在settings.py文件中进行配置,其一般配置如下所示:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), <mark>本文来源gaodaimacom搞#代%码@网-</mark> } }
而我们使用Djongo的话,变化也不大,如下所示:
DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': 'MongoDB数据库的名称', } }
可以发现,这与Django原始的数据库配置方法是一模一样的,所不同的是,数据库的引擎使用了djongo而非Django官方提供的数据库封装引擎。
我们用一个新的Django项目来演示一下djongo的使用。
首先创建Django项目和应用:
然后修改项目的settings.py文件,填写MongoDB数据库的配置信息,Djongo提供了如下参数供我们设置数据库的信息:
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' } }
我们的数据库是本地的数据库,所以只需要设置一部分信息即可,其如下所示:
DATABASES = { 'default': { 'ENGINE': 'djongo', 'ENFORCE_SCHEMA': True, 'NAME': 'djongo_example', 'HOST': '127.0.0.1', 'PORT': 27017, } }
这样,MongoDB在Django中的 配置就完成了,我们下面可以定义一些模型。
二、定义模型
Djongo的一大特点是可以无缝地衔接Django的ORM语法,包括模型定义的语法和模型操作的语法。现在,我们就为Django项目定义一些模型。
在默认情况下,Django应用的模型在其目录下的models.py文件中定义。models.py文件初始化状态下只有如下一行代码:
from django.db import models
这是Django数据库封装的模型类,我们需要将其修改为Djongo提供的模型类,如下所示:
from djongo import models
然后,就可以按照Django的方式来定义模型了。在这里,我们定义了一个News()模型,用于存储新闻:
class News(models.Model): title = models.CharField(verbose_name="标题",max_length=50) author = models.CharField(verbose_name="作者",max_length=10) desc = models.CharField(verbose_name="简介",max_length=100) content = models.TextField(verbose_name="正文") create_time = models.DateTimeField(auto_now_add=True) update_time = models.DateTimeField(auto_now=True,auto_now_add=True) def __str__(self): return self.title class Meta: verbose_name = '新闻' verbose_name_plural = verbose_name