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()
Metadata
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| flask-rest-mongo-0.1.5.tar.gz | 7.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|
Security for flask-rest-mongo 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.