中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Django中使用MongoDB數據庫

發布時間:2021-06-21 10:13:55 來源:億速云 閱讀:984 作者:chen 欄目:開發技術

本篇內容介紹了“怎么在Django中使用MongoDB數據庫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

目錄
  • 一、安裝與配置

  • 二、定義模型

  • 三、生成模型

  • 四、訪問Django Admin

  • 五、操作數據

  • 六、最后

一、安裝與配置

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

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

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'MongoDB數據庫的名稱',
    }
}

可以發現,這與Django原始的數據庫配置方法是一模一樣的,所不同的是,數據庫的引擎使用了djongo而非Django官方提供的數據庫封裝引擎。

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

首先創建Django項目和應用:

怎么在Django中使用MongoDB數據庫

然后修改項目的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

三、生成模型

定義好模型之后,繼續按照Django模型的使用方式,生成數據庫遷移,并執行遷移:

python manage.py makemigrations app&
python manage.py migrate

命令的執行信息如下所示:

怎么在Django中使用MongoDB數據庫

和使用SQL數據庫一樣,Django為新項目創建了我們定義的模型還有一些認證管理相關的表,這是否是真的呢,我們去MongoDB數據庫里面查看一下:

怎么在Django中使用MongoDB數據庫

MongoDB數據庫里面果然生成了一系列的數據表。

四、訪問Django Admin

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

首先,繼續在命令行中創建一個超級用戶:

python manage.py createsuperuser

其過程與使用其他SQL數據庫無異:

怎么在Django中使用MongoDB數據庫

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

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

隨后,運行測試服務器

怎么在Django中使用MongoDB數據庫

五、操作數據

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

怎么在Django中使用MongoDB數據庫

顯示新增成功了,我們去MongoDB里面看看是否存在:

怎么在Django中使用MongoDB數據庫

六、最后

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

“怎么在Django中使用MongoDB數據庫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松潘县| 咸丰县| 寿宁县| 塔城市| 祥云县| 应城市| 襄汾县| 郸城县| 景东| 宁都县| 桐庐县| 奎屯市| 陆川县| 讷河市| 漯河市| 綦江县| 曲松县| 加查县| 阿克| 五家渠市| 赞皇县| 铜川市| 久治县| 万山特区| 琼结县| 武冈市| 顺昌县| 常熟市| 饶阳县| 西盟| 开封市| 偏关县| 德江县| 三门县| 岐山县| 嵊泗县| 班玛县| 静乐县| 兖州市| 高淳县| 陆河县|