Python Database Access
SQLite, PostgreSQL, ORM patterns, and database operations.
Overview
Master database operations in Python.
SQLite
import sqlite3
# Connect to database
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# Create table
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
)
''')
# Insert
cursor.execute(
"INSERT INTO users (name, email) VALUES (?, ?)",
('Alice', 'alice@example.com')
)
conn.commit()
# Query
cursor.execute("SELECT * FROM users")
users = cursor.fetchall()
for user in users:
print(user)
conn.close()
SQLAlchemy ORM
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(100))
email = Column(String(100), unique=True)
# Create engine and session
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# CRUD operations
new_user = User(name='Bob', email='bob@example.com')
session.add(new_user)
session.commit()
users = session.query(User).all()
for user in users:
print(user.name, user.email)
Practice
Build a database-backed REST API with SQLAlchemy.