Database with SQLAlchemy
Use SQLAlchemy for ORM mapping and database access, recommended to use with Flask-Migrate for migration management.
Installation:
bash
pip install flask-sqlalchemy flask-migrateInitialize Extensions:
python
# app/extensions.py
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
db = SQLAlchemy()
migrate = Migrate()Application Factory Registration:
python
# app/__init__.py
from .extensions import db, migrate
def create_app(config_object=None):
app = Flask(__name__)
app.config.from_mapping(SQLALCHEMY_DATABASE_URI="sqlite:///app.db",
SQLALCHEMY_TRACK_MODIFICATIONS=False)
db.init_app(app)
migrate.init_app(app, db)
return appDefine Models:
python
# app/models.py
from .extensions import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(120), unique=True, nullable=False)
name = db.Column(db.String(80))
created_at = db.Column(db.DateTime, server_default=db.func.now())Basic Operations:
python
u = User(email="a@ex.com", name="Alice")
db.session.add(u)
db.session.commit()