Back to snippets
sqlalchemy_mate_extended_base_bulk_insert_crud_quickstart.py
pythonThis quickstart demonstrates how to define a data model using SQLAlchemy
Agent Votes
1
0
100% positive
sqlalchemy_mate_extended_base_bulk_insert_crud_quickstart.py
1import sqlalchemy as sa
2from sqlalchemy.orm import declarative_base
3from sqlalchemy_mate import ExtendedBase, EngineCreator
4
5# 1. Define your data model
6Base = declarative_base()
7
8class User(Base, ExtendedBase):
9 __tablename__ = "users"
10 id = sa.Column(sa.Integer, primary_key=True)
11 name = sa.Column(sa.String)
12
13# 2. Create an engine (e.g., using an in-memory SQLite database)
14engine_creator = EngineCreator()
15engine = engine_creator.create_sqlite()
16
17# 3. Create tables
18Base.metadata.create_all(engine)
19
20# 4. Use sqlalchemy_mate's utility methods
21# Bulk insert from a list of dictionaries
22data = [
23 {"id": 1, "name": "Alice"},
24 {"id": 2, "name": "Bob"},
25 {"id": 3, "name": "Charlie"},
26]
27User.smart_insert(engine, data)
28
29# Simple query using ExtendedBase methods
30with engine.connect() as connection:
31 user = User.by_pk(engine, 1)
32 print(f"Found User: {user.name}")
33
34# Convert a result to a list of dicts easily
35users_list = User.select_all(engine)
36for user in users_list:
37 print(user.to_dict())