Aller au contenu principal

Le site sera en maintenance le 19/04/2026 entre 09h30 et 12h00.

Aller au contenu principal

Sérialisation (Marshmallow)

Apprendre Flask : Le Guide Ultime
3 min de lecture
0 commentaires
Gratuit

Un objet Python (User(id=1, name='Bob')), ça ne s'envoie pas tel quel sur internet. Il faut le transformer en texte JSON : {"id": 1, "name": "Bob"}. C'est la Sérialisation.

Et quand on reçoit du JSON et qu'on veut en faire un objet Python, c'est la Désérialisation.

Au lieu de le faire à la main (mon_dict = {'id': user.id...}), on utilise une librairie pro : Marshmallow.

Installation

pip install flask-marshmallow marshmallow-sqlalchemy

Configuration

from flask_marshmallow import Marshmallow

ma = Marshmallow(app)

Créer un Schéma

Un Schéma définit comment transformer ton Modèle SQLAlchemy en JSON.

class UserSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = User # Ton modèle SQLAlchemy
        load_instance = True # Pour pouvoir désérialiser directement en objet User

# Instanciation
user_schema = UserSchema()
users_schema = UserSchema(many=True) # Pour une liste d'users

Utilisation

@app.route('/api/users')
def get_users():
    users = User.query.all()
    # On transforme la liste d'objets en JSON
    result = users_schema.dump(users)
    return jsonify(result)

@app.route('/api/users/<int:id>')
def get_user(id):
    user = User.query.get_or_404(id)
    return user_schema.dump(user) # Renvoie automatiquement du JSON

C'est propre, et Marshmallow gère aussi la Validation des données entrantes (types, champs obligatoires...).

Commentaires (0)

Laisser un commentaire

Aucun commentaire pour le moment. Soyez le premier à commenter !