Skip to content

CRUD - Create Record

Creating records means:

  • instantiate a model
  • add it to the session
  • commit

Example

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
 
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///app.db"
 
db = SQLAlchemy(app)
 
 
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
 
 
with app.app_context():
    db.create_all()
 
    user = User(username="ravi")
    db.session.add(user)
    db.session.commit()
 
    print(user.id)  # id is available after commit
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
 
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///app.db"
 
db = SQLAlchemy(app)
 
 
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
 
 
with app.app_context():
    db.create_all()
 
    user = User(username="ravi")
    db.session.add(user)
    db.session.commit()
 
    print(user.id)  # id is available after commit

Session basics

  • db.sessiondb.session holds pending changes
  • commit()commit() finalizes the transaction

If something fails, you can:

db.session.rollback()
db.session.rollback()

Common pitfalls

  • Forgetting commit()commit() (data doesn’t persist)
  • Not handling IntegrityErrorIntegrityError (unique constraint violations)
  • Doing heavy DB work inside request handlers without optimization

If this helped you, consider buying me a coffee β˜•

Buy me a coffee

Was this page helpful?

Let us know how we did