主頁 > 知識庫 > 使用Djongo模塊在Django中使用MongoDB數(shù)據(jù)庫

使用Djongo模塊在Django中使用MongoDB數(shù)據(jù)庫

熱門標(biāo)簽:梅州外呼業(yè)務(wù)系統(tǒng) 無錫客服外呼系統(tǒng)一般多少錢 洪澤縣地圖標(biāo)注 北京電信外呼系統(tǒng)靠譜嗎 地圖標(biāo)注視頻廣告 高德地圖標(biāo)注是免費的嗎 大連crm外呼系統(tǒng) 老人電話機器人 百度地圖標(biāo)注位置怎么修改

一、安裝與配置

Djongo的項目官方地址為:https://nesdis.github.io/djongo/,我們可以通過pip命令直接安裝djongo:

pip install djongo

在安裝完成之后,我們就可以直接在Django中配置MongoDB數(shù)據(jù)庫的信息了。

在正常情況下,我們的Django項目中數(shù)據(jù)庫在settings.py文件中進行配置,其一般配置如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

而我們使用Djongo的話,變化也不大,如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'MongoDB數(shù)據(jù)庫的名稱',
    }
}

可以發(fā)現(xiàn),這與Django原始的數(shù)據(jù)庫配置方法是一模一樣的,所不同的是,數(shù)據(jù)庫的引擎使用了djongo而非Django官方提供的數(shù)據(jù)庫封裝引擎。

我們用一個新的Django項目來演示一下djongo的使用。

首先創(chuàng)建Django項目和應(yīng)用:

然后修改項目的settings.py文件,填寫MongoDB數(shù)據(jù)庫的配置信息,Djongo提供了如下參數(shù)供我們設(shè)置數(shù)據(jù)庫的信息:

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'
   }
}

我們的數(shù)據(jù)庫是本地的數(shù)據(jù)庫,所以只需要設(shè)置一部分信息即可,其如下所示:

DATABASES = {
   'default': {
      'ENGINE': 'djongo',
      'ENFORCE_SCHEMA': True,
      'NAME': 'djongo_example',
      'HOST': '127.0.0.1',
      'PORT': 27017,
   }
}

這樣,MongoDB在Django中的 配置就完成了,我們下面可以定義一些模型。

二、定義模型

Djongo的一大特點是可以無縫地銜接Django的ORM語法,包括模型定義的語法和模型操作的語法?,F(xiàn)在,我們就為Django項目定義一些模型。

在默認(rèn)情況下,Django應(yīng)用的模型在其目錄下的models.py文件中定義。models.py文件初始化狀態(tài)下只有如下一行代碼:

from django.db import models

這是Django數(shù)據(jù)庫封裝的模型類,我們需要將其修改為Djongo提供的模型類,如下所示:

from djongo import models

然后,就可以按照Django的方式來定義模型了。在這里,我們定義了一個News()模型,用于存儲新聞:

class News(models.Model):
    title = models.CharField(verbose_name="標(biāo)題",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

三、生成模型

定義好模型之后,繼續(xù)按照Django模型的使用方式,生成數(shù)據(jù)庫遷移,并執(zhí)行遷移:

python manage.py makemigrations app
python manage.py migrate

命令的執(zhí)行信息如下所示:

和使用SQL數(shù)據(jù)庫一樣,Django為新項目創(chuàng)建了我們定義的模型還有一些認(rèn)證管理相關(guān)的表,這是否是真的呢,我們?nèi)ongoDB數(shù)據(jù)庫里面查看一下:

MongoDB數(shù)據(jù)庫里面果然生成了一系列的數(shù)據(jù)表。

四、訪問Django Admin

經(jīng)過上面的演示,我們可以發(fā)現(xiàn)借助于Djongo模塊,我們可以無痛地以Django ORM的方式來使用MongoDB數(shù)據(jù)庫。那么作為Django重量級的admin后臺功能,是否能夠支持呢?我們繼續(xù)下面的演示。

首先,繼續(xù)在命令行中創(chuàng)建一個超級用戶:

python manage.py createsuperuser

其過程與使用其他SQL數(shù)據(jù)庫無異:

接著,我們將剛剛創(chuàng)建的News()模型添加到admin中,在admin.py中進行設(shè)置:

from app.models import News
admin.site.register(News)

隨后,運行測試服務(wù)器:

五、操作數(shù)據(jù)

除此之外,我們最關(guān)心的還是對數(shù)據(jù)操縱是否方便。我們先在后臺界面嘗試一下新增數(shù)據(jù):

顯示新增成功了,我們?nèi)ongoDB里面看看是否存在:

六、最后

經(jīng)過上面初步的演示在Django中借助djongo模塊來使用MongoDB,可以發(fā)現(xiàn)其還是很方便的,優(yōu)點在于其改動微乎其微,兼容性特別強。推薦大家在測試環(huán)境下充分地進行測試使用,如果沒有問題,那么可以謹(jǐn)慎在生產(chǎn)環(huán)境中進行部署。更多的使用方法和問題,大家可以訪問djongo項目官網(wǎng):https://nesdis.github.io/djongo/ 和它的GitHub項目地址:https://github.com/nesdis/djongo/

以上就是使用Djongo模塊在Django中使用MongoDB數(shù)據(jù)庫的詳細(xì)內(nèi)容,更多關(guān)于在Django中使用MongoDB數(shù)據(jù)庫的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Django集成MongoDB實現(xiàn)過程解析
  • 使用python向MongoDB插入時間字段的操作
  • 如何用python 操作MongoDB數(shù)據(jù)庫
  • 用Python實現(xiàn)定時備份Mongodb數(shù)據(jù)并上傳到FTP服務(wù)器
  • python連接mongodb數(shù)據(jù)庫操作數(shù)據(jù)示例
  • python爬蟲用mongodb的理由
  • python爬蟲數(shù)據(jù)保存到mongoDB的實例方法
  • 基于python3.7利用Motor來異步讀寫Mongodb提高效率(推薦)

標(biāo)簽:長春 洛陽 泉州 清遠(yuǎn) 怒江 安慶 岳陽 吉林

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Djongo模塊在Django中使用MongoDB數(shù)據(jù)庫》,本文關(guān)鍵詞  使用,Djongo,模塊,在,Django,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Djongo模塊在Django中使用MongoDB數(shù)據(jù)庫》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用Djongo模塊在Django中使用MongoDB數(shù)據(jù)庫的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章