MongoEngine – 扩展

MongoEngine – 扩展

MongoEngine与以下库完美结合 –

marshmallow_mongoengine

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

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

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

然后用下面的代码生成marshmallow模式-

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'

extras-mongoengine

这个扩展包含额外的字段类型和任何其他的向导。

Eve-MongoEngine

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)

定义一个文档类,如下图所示

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

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

ext.add_model(Person)
app.run()

Django-MongoEngine

这个扩展旨在将MongoEngine与Django API集成,Django是一个非常流行的Python网络开发框架。这个项目仍在开发中。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程