Flask-SQLAlchemy: Setup & Models
Flask-SQLAlchemy is an extension that adds support for SQLAlchemy to your Flask application, simplifying database connection configuration and model structures.
1 Database Setup & Schema
Python — models.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///project.db"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app)
return app
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
# One-to-many relationship mapping
posts = db.relationship("Post", backref="author", lazy=True)
class Post(db.Model):
__tablename__ = "posts"
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(200), nullable=False)
content = db.Column(db.Text, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
2 Code Challenge
Challenge: Add a new field named
created_at to the Post model utilizing SQLAlchemy's DateTime type, setting the default value to the current time.