Quick Start
1. Create Flask app and configure MongoDB
from flask import Flask
from pymongo import MongoClient
from flask_mongo_drf import MongoModelViewSet, ModelSerializer, CharField
from flask_mongo_drf.contrib import MongoDBManager
app = Flask(__name__)
# Register MongoDB client
MongoDBManager.register_client("default", "mongodb://localhost:27017", default_db="testdb")
2. Define model and serializer
from flask_mongo_drf import MongoBaseModel
class UserModel(MongoBaseModel):
def __init__(self):
collection = MongoDBManager.get_collection("users", client_name="default")
super().__init__(collection)
class UserSerializer(ModelSerializer):
name = CharField(required=True, max_length=50)
email = CharField(required=True)
class Meta:
model = UserModel
3. Write ViewSet and register routes
from flask_mongo_drf import MongoModelViewSet
from flask import Blueprint
class UserViewSet(MongoModelViewSet):
model_class = UserModel
serializer_class = UserSerializer
bp = Blueprint('api', __name__)
UserViewSet.register_routes(bp, 'users')
app.register_blueprint(bp, url_prefix='/api/v1')
4. Run the app
flask run
Now you can access the following endpoints:
GET /api/v1/users/ — list
POST /api/v1/users/ — create
GET /api/v1/users/<id> — retrieve
PUT /api/v1/users/<id> — full update
PATCH /api/v1/users/<id> — partial update
DELETE /api/v1/users/<id> — delete
Swagger documentation is automatically available at /apidocs/.