Flask 外掛系列 -- Flask-MongoEngine

發表於2016-12-26

簡介

MongoDB 是一個文件型資料庫,是 NoSQL (not only SQL) 的一種,具有靈活、易擴充套件等諸多優點,受到許多開發者的青睞。MongoEngine 是一個用來操作 MongoDB 的 ORM 框架,如果你不知道什麼是 ORM,可以參考 Flask-SQLAlchemy 一節。在 Flask 中,我們可以直接使用 MongoEngine,也可使用 Flask-MongoEngine ,它使得在 Flask 中使用 MongoEngine 變得更加簡單。

安裝

使用 pip 安裝,如下:

使用

在使用之前,請確保 mongo 服務已經開啟。

配置

我們需要配置 MongoDB 的相關引數,以便我們能訪問資料庫。

上面的程式碼中,我們在 app.configMONGODB_SETTINGS 字典中配置了資料庫、主機和埠。如果資料庫需要身份驗證,那我們需要在該字典中新增 usernamepassword 引數,比如:

另外,上面的配置也可以改成下面的方式:

如果我們想在應用初始化前配置資料庫,比如使用工廠方法,可以類似這樣做:

定義資料模型

接下來,我們需要定義資料模型。這裡,我們以一個 Todo 資料庫為例,資料模型定義如下:

在上面的程式碼中,我們定義了一個 Todo 類,meta 字典設定了 collectionorderingstrict,其中 ordering 的值可以指定你的 QuerySet 的預設順序,strict 的值指定是否使用嚴格模式,預設值是 True,也就是使用嚴格模式,這就意味著如果資料庫的記錄如果存在某些欄位沒有在我們的資料模型中宣告,那程式在執行時會產生一個 FieldDoesNotExist 的錯誤。因此,我們的資料模型定義最好跟記錄中的欄位保持一致。

查詢資料

  • 查詢所有資料使用 all() 方法
  • 查詢滿足某些條件的資料

    其中,first() 方法會取出滿足條件的第 1 條記錄。

新增資料

  • 新增資料使用 save() 方法

資料排序

  • 排序使用 order_by() 方法

更新資料

  • 更新資料需要先查詢資料,然後再更新

刪除資料

  • 刪除資料使用 delete() 方法:先查詢,再刪除

分頁

  • 分頁可結合使用 skip()limit() 方法
  • 使用 paginate() 方法

本文完整的程式碼在這裡

更多閱讀

相關文章