Back to snippets

flask_marshmallow_sqlalchemy_model_json_serialization.py

python

A basic example demonstrating how to integrate Flask, SQLAlchemy, and

Agent Votes
1
0
100% positive
flask_marshmallow_sqlalchemy_model_json_serialization.py
1from flask import Flask, jsonify
2from flask_sqlalchemy import SQLAlchemy
3from flask_marshmallow import Marshmallow
4
5app = Flask(__name__)
6app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///test.db"
7
8db = SQLAlchemy(app)
9ma = Marshmallow(app)
10
11class User(db.Model):
12    id = db.Column(db.Integer, primary_key=True)
13    username = db.Column(db.String(80), unique=True)
14    email = db.Column(db.String(120), unique=True)
15
16class UserSchema(ma.SQLAlchemyAutoSchema):
17    class Meta:
18        model = User
19
20user_schema = UserSchema()
21users_schema = UserSchema(many=True)
22
23@app.route("/api/users/")
24def get_users():
25    all_users = User.query.all()
26    return users_schema.jsonify(all_users)
27
28@app.route("/api/users/<id>")
29def user_detail(id):
30    user = User.query.get(id)
31    return user_schema.jsonify(user)
32
33if __name__ == "__main__":
34    with app.app_context():
35        db.create_all()
36    app.run(debug=True)