使用Djongo模塊在Django中使用MongoDB數據庫
一、安裝與配置
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項目和應用:
然後修改項目的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
命令的執行信息如下所示:
和使用SQL數據庫一樣,Django為新項目創建瞭我們定義的模型還有一些認證管理相關的表,這是否是真的呢,我們去MongoDB數據庫裡面查看一下:
MongoDB數據庫裡面果然生成瞭一系列的數據表。
四、訪問Django Admin
經過上面的演示,我們可以發現借助於Djongo模塊,我們可以無痛地以Django ORM的方式來使用MongoDB數據庫。那麼作為Django重量級的admin後臺功能,是否能夠支持呢?我們繼續下面的演示。
首先,繼續在命令行中創建一個超級用戶:
python manage.py createsuperuser
其過程與使用其他SQL數據庫無異:
接著,我們將剛剛創建的News()模型添加到admin中,在admin.py中進行設置:
from app.models import News admin.site.register(News)
隨後,運行測試服務器:
五、操作數據
除此之外,我們最關心的還是對數據操縱是否方便。我們先在後臺界面嘗試一下新增數據:
顯示新增成功瞭,我們去MongoDB裡面看看是否存在:
六、最後
經過上面初步的演示在Django中借助djongo模塊來使用MongoDB,可以發現其還是很方便的,優點在於其改動微乎其微,兼容性特別強。推薦大傢在測試環境下充分地進行測試使用,如果沒有問題,那麼可以謹慎在生產環境中進行部署。更多的使用方法和問題,大傢可以訪問djongo項目官網:https://nesdis.github.io/djongo/ 和它的GitHub項目地址:https://github.com/nesdis/djongo/
以上就是使用Djongo模塊在Django中使用MongoDB數據庫的詳細內容,更多關於在Django中使用MongoDB數據庫的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Django項目連接MongoDB的三種方法
- Django一小時寫出賬號密碼管理系統
- 關於django連接mysql數據庫並進行數據庫的創建的問題
- Python Django模型詳解
- Django創建項目+連通mysql的操作方法