Skip to main content

Flask-REST-MongoDB


一个用于快速构建RESTful API的辅助库,该库依赖于: - Flask - Falsk-restful - MongoEngine

1. 核心工具类

实现了基本的GET\POST\PUT\PATCH\DELETE方法

flask_rest_mongo.mix.MixList # 实现get接口,获取批量数据
flask_rest_mongo.mix.MixCreate # 实现post接口,新建document
flask_rest_mongo.mix.MixRetrial # 实现get接口,获取单个document
flask_rest_mongo.mix.MixUpdate # 实现put与patch接口,更新document
flask_rest_mongo.mix.MixDelete # 实现delete接口,删除document

除此之外提供了各种组合

flask_rest_mongo.mix.MixListCreate
flask_rest_mongo.mix.MixRetrialUpdate
flask_rest_mongo.mix.MixRetrialDelete
flask_rest_mongo.mix.MixUpdateDelete
flask_rest_mongo.mix.MixRetrialUpdateDelete

2. 示例

from flask import Flask
from flask_mongoengine import MongoEngine
from mongoengine import fields
from flask_restful import Resource, Api
from flask_rest_mongo.mix import *
import mongoengine


class Config(object):

    ENV = 'development'
    SERVER_NAME = '127.0.0.1:7788'
    DEBUG = True
    MONGODB_SETTINGS = {
        'db': 'flaskTest',
        'host': '127.0.0.1',
        'port': 27017
    }

if __name__ == "__main__":
    app = Flask(__name__)
    db = MongoEngine()
    api = Api()
    app.config.from_object(Config())


    class UserTest(db.DynamicDocument):
        username = fields.StringField(primary_key=True)
        email = fields.EmailField()
        password = fields.StringField()
        def to_json(self):
            return {
                'username':self.username,
                'email':self.email
            }

    class DataTest(db.DynamicDocument):
        data = fields.DictField()
        list_data = fields.ListField()
        def to_json(self, *args, **kwargs):
                return {
                    'id':str(self.id),
                    'data':self.data,
                    'list':self.list_data
                }

    class TestDocument(db.DynamicDocument):
        user = fields.ReferenceField(UserTest, reverse_delete_rule=mongoengine.CASCADE, required=True)
        data_list = fields.ListField(fields.ReferenceField(DataTest))
        count = fields.IntField()
        factor = fields.FloatField()


    class UserListCreate(Resource, MixListCreate):
        document = UserTest
        exclude = ['password']
        page = True
    api.add_resource(UserListCreate, '/user/')
    class UserDetail(Resource, MixRetrialUpdateDelete):
        document = UserTest
        exclude = ['password']
    api.add_resource(UserDetail, '/user/detail/')

    class DataListCreate(Resource, MixListCreate):
        document = DataTest
        page = True
    api.add_resource(DataListCreate, '/data/')
    class DataDetail(Resource, MixRetrialUpdateDelete):
        document = DataTest
    api.add_resource(DataDetail, '/data/detail/')

    class TestDocumentListCreate(Resource, MixListCreate):
        document = TestDocument
        page = True
    api.add_resource(TestDocumentListCreate, '/test/')
    class TestDocumentDetail(Resource, MixRetrialUpdateDelete):
        document = TestDocument
    api.add_resource(TestDocumentDetail, '/test/detail/')


    db.init_app(app)
    api.init_app(app)

    app.run()

Release files for flask-rest-mongo 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flask-rest-mongo 0.1.5
File Size Uploaded
flask-rest-mongo-0.1.5.tar.gz 7.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flask-rest-mongo 0.1.5
File Interpreter ABI Platform
flask_rest_mongo-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 25.1 kB

Release files / flask-rest-mongo-0.1.5.tar.gz

Download URL flask-rest-mongo-0.1.5.tar.gz
Size 7.0 kB
Tags Source
SHA-256 checksum
How to use checksums
799d62c8cd5aaf3ae96245f2c7a59664839b1fbc469b932fb360e8adaf58e1a2
BLAKE2b-256 checksum
How to use checksums
beeffe6c68724a92fc0c2d51d68f8d681d640c2e37d4a6c7319f6cdf3dacd499
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.0.post20201006 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.5

Release files / flask_rest_mongo-0.1.5-py3-none-any.whl

Download URL flask_rest_mongo-0.1.5-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
677211cf9953c0cff1877c017da4a6800be9f9efafd7d1619c7c1472fed3708e
BLAKE2b-256 checksum
How to use checksums
9af98e8be8ad6da06aac8f7575b222838c3307163af0baa5a1dd07cb4d05f3c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.0.post20201006 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.5

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

3 release files

0.1.3

1 release file

0.1.2

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page