Define SQLAlchemy models, perform CRUD, define relationships, and paginate in Flask-SQLAlchemy.
Flask-SQLAlchemy
pip install flask-sqlalchemy flask-migrate
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
# Model
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(255), unique=True, nullable=False)
created_at = db.Column(db.DateTime, default=db.func.now())
posts = db.relationship("Post", backref="user", lazy=True)
def __repr__(self):
return "<User " + self.email + ">"
# CRUD
user = User(name="Alice", email="a@b.com")
db.session.add(user)
db.session.commit()
user = User.query.get(1) # deprecated
user = db.session.get(User, 1) # SQLAlchemy 2.x
users = User.query.filter_by(name="Alice").all()
users = User.query.order_by(User.created_at.desc()).paginate(page=1, per_page=10)