In [ ]:
pip install sqlalchemy
In [ ]:
from django.db.models.loading import cache
cache.get_apps()
# one global app-cache
In [ ]:
from sqlalchemy import *
engine = create_engine('sqlite:///tx_people.db', echo=True)
metadata = MetaData(bind=engine)
connection = metadata.bind
politicians = Table(
'politicians',
metadata,
Column('id', Integer, primary_key=True),
Column('politician_name', String, nullable=False)
)
metadata.create_all()
connection.execute(politicians.insert(), [
{'politician_name': 'Rick Perry'},
{'politician_name': 'Wendy Davis'},
])
It's a toolkit; there are high-level tools, as well.
In [ ]:
from sqlalchemy import *
Base = declarative_base()
class Politician(Base):
__tablename__ = 'politicians'
id = Column(Integer, primary_key=True)
name = Column(string, nullable=False)
class Office(Base):
__tablename__ = 'office'
# ...
engine = ''...
Base.metadata.creat_all(engine)
In [ ]:
politician = Politician('Rick Perry')
governor = Office(politician, title='Governor')
#... more transactions
# commit session all at once
In [ ]:
# SQLAlchemy
session.query(Politician).all()
# Django
Politician.objects.all()
In [ ]:
# SQLAlchemy (can handle multi-column PKs)
session.query(Politician).get(1)
# Django
Politician.objects.get(pk=1)
In [ ]:
# SQLAlchemy
session.query(Politician).first()
# Django
next(iter(Politician.objects.all(), None))
functions
Reflection and compilation
Could use SQLAlchmey to reflect Django models and make complex queries
With flask + sqlalchemy, there is a decent migration tool
Author of SQLAlchemy is working on a migration tool