MongoEngine - 扩展


MongoEngine 与以下库完美集成 -

marshmallow_mongoengine

marshmallow 是一个独立于 ORM/ODM/框架的序列化/反序列化库,用于将复杂数据类型(例如对象)与本机 Python 数据类型相互转换。使用 MongoEngine 的这个扩展,我们可以轻松地执行序列化/反序列化操作。

首先,像往常一样创建一个 Document 类,如下所示 -

import mongoengine as me
class Book(me.Document):
title = me.StringField()

然后使用下面的代码生成棉花糖模式 -

from marshmallow_mongoengine import ModelSchema
class BookSchema(ModelSchema):
   class Meta:
      model = Book

b_s = BookSchema()

使用以下代码保存文档:

book = Book(title='MongoEngine Book').save()

并使用下面的代码使用 dump(0 和 load() 执行序列化/反序列化 -

data = b_s.dump(book).data
b_s.load(data).data

Flask-MongoEngine

这是一个 Flask 扩展,提供与 MongoEngine 的集成。该库可以轻松处理您的应用程序的 MongoDB 数据库的连接管理。您还可以使用 WTForms 作为模型的模型表单。

安装flask-mongoengine包后,使用以下设置初始化flask应用程序 -

from flask import Flask
from flask_mongoengine import MongoEngine

app = Flask(__name__)
app.config['MONGODB_SETTINGS'] = {
   'db': 'mydata',
   'host': 'localhost',
   'port':27017
}
db = MongoEngine(app)

然后使用以下代码定义一个 Document 子类 -

class book(me.Document):
name=me.StringField(required=True)

声明上述类的对象,并在访问特定路线时调用 save() 方法。

@app.route('/')
def index():
b1=book(name='Introduction to MongoEngine')
b1.save()
return 'success'

额外 mongoengine

此扩展包含附加字段类型和任何其他魔法。

Eve-Mongo引擎

Eve是一个专为人类设计的开源Python REST API框架。它允许轻松构建和部署高度可定制、功能齐全的 RESTful Web 服务。

Eve 由 Flask 和 Cerberus 提供支持,并为 MongoDB 数据存储提供本机支持。Eve-MongoEngine 提供 MongoEngine 与 Eve 的集成。

使用下面的代码安装并导入扩展 -

import mongoengine
from eve import Eve
from eve_mongoengine import EveMongoengine

配置设置并初始化 Eve 实例。

my_settings = {
'MONGO_HOST': 'localhost',
'MONGO_PORT': 27017,
'MONGO_DBNAME': 'eve_db'
app = Eve(settings=my_settings)
# init extension
ext = EveMongoengine(app)

定义一个 Document 类,如下所示 -

class Person(mongoengine.Document):
name = mongoengine.StringField()
age = mongoengine.IntField()

添加模型并运行应用程序,最后使用以下代码 -

ext.add_model(Person)
app.run()

Django-MongoEngine

此扩展旨在将 MongoEngine 与 Django API(一个非常流行的 Python Web 开发框架)集成。该项目仍在开发中。