Python7 min read

Python SQLAlchemy

Work with databases using SQLAlchemy ORM.

David Miller
December 18, 2025
0.0k0

Database operations made easy.

Install SQLAlchemy

```bash pip install sqlalchemy ```

Define Model

```python 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) email = Column(String)

Create database engine = create_engine('sqlite:///users.db') Base.metadata.create_all(engine) ```

Insert Data

```python Session = sessionmaker(bind=engine) session = Session()

Add single user user = User(name="Tom", email="tom@example.com") session.add(user)

Add multiple users = [ User(name="Sarah", email="sarah@example.com"), User(name="Mike", email="mike@example.com") ] session.add_all(users)

session.commit() ```

Query Data

```python # Get all users = session.query(User).all() for user in users: print(user.name)

Filter user = session.query(User).filter_by(name="Tom").first() print(user.email)

Advanced filter users = session.query(User).filter(User.name.like("%a%")).all() ```

Update Data

```python user = session.query(User).filter_by(name="Tom").first() user.email = "newemail@example.com" session.commit() ```

Delete Data

```python user = session.query(User).filter_by(name="Tom").first() session.delete(user) session.commit() ```

Relationships

```python from sqlalchemy import ForeignKey from sqlalchemy.orm import relationship

class Post(Base): __tablename__ = 'posts' id = Column(Integer, primary_key=True) title = Column(String) user_id = Column(Integer, ForeignKey('users.id')) user = relationship("User", backref="posts")

Query with relationship user = session.query(User).first() for post in user.posts: print(post.title) ```

Remember

- Always commit changes - Use sessions for database operations - Close sessions when done

#Python#Advanced#Database