Add Python notes
This commit is contained in:
4
python/sqlalchemy/core.py
Normal file → Executable file
4
python/sqlalchemy/core.py
Normal file → Executable file
@@ -64,7 +64,9 @@ with engine.begin() as conn:
|
||||
# SELECT
|
||||
from sqlalchemy import select
|
||||
|
||||
stmt = select(user_table).where(user_table.c.name == 'spongebob')
|
||||
stmt = select(user_table).where(user_table.c.name == 'spongebob') # Where accepts binary expression
|
||||
print('Where clause: ', user_table.c.name == 'spongebob')
|
||||
print('Type of where clause: ', type(user_table.c.name == 'spongebob'))
|
||||
with engine.connect() as conn:
|
||||
for row in conn.execute(stmt):
|
||||
print(row)
|
||||
|
||||
83
python/sqlalchemy/orm.py
Normal file → Executable file
83
python/sqlalchemy/orm.py
Normal file → Executable file
@@ -44,11 +44,86 @@ engine = create_engine("sqlite+pysqlite:///:memory:", future=True)
|
||||
Base.metadata.create_all(engine)
|
||||
|
||||
|
||||
session = Session(engine)
|
||||
|
||||
|
||||
# INSERT
|
||||
print('-----insert-----')
|
||||
squidward = User(name="squidward", fullname="Squidward Tentacles")
|
||||
krabs = User(name="ehkrabs", fullname="Eugene H. Krabs")
|
||||
spongebob = User(name='spongebob', fullname='Spongebob Squarepants')
|
||||
|
||||
session.add(squidward)
|
||||
session.add(krabs)
|
||||
session.add(spongebob)
|
||||
print('new: ', session.new)
|
||||
|
||||
saved_krabs = session.get(User, 2)
|
||||
print('krabs: ', saved_krabs)
|
||||
print('krabs is krabs: ', saved_krabs is krabs)
|
||||
session.commit() # All changes are applied only after commit
|
||||
|
||||
|
||||
|
||||
|
||||
# SELECT
|
||||
print('-----select-----')
|
||||
from sqlalchemy import select
|
||||
stmt = select(User).where(User.name == 'spongebob')
|
||||
with Session(engine) as conn:
|
||||
for row in conn.execute(stmt):
|
||||
print(row)
|
||||
|
||||
stmt = select(User)
|
||||
first = session.execute(stmt).first()
|
||||
print(firs)
|
||||
|
||||
_all = session.execute(stmt).scalars().all()
|
||||
print(_all)
|
||||
|
||||
|
||||
|
||||
# UPDATE
|
||||
print('-----update-----')
|
||||
from sqlalchemy import update
|
||||
|
||||
# Unit of work
|
||||
squid = session.execute(select(User).filter_by(name='squidward')).scalar_one()
|
||||
print('fetched squidward: ', squid)
|
||||
squid.fullname = 'Squidward Octopus'
|
||||
print('squid modified: ', squid in session.dirty)
|
||||
print('new squid status: ', session.execute(select(User).where(User.name == 'squidward')).first())
|
||||
|
||||
# ORM enabled
|
||||
session.execute(
|
||||
update(User).
|
||||
where(User.name == "squidward").
|
||||
values(fullname="Sandy Octopus Extraordinaire")
|
||||
)
|
||||
print('Squid after bulk update: ', squid.fullname)
|
||||
|
||||
|
||||
|
||||
# DELETE
|
||||
print('-----delete-----')
|
||||
from sqlalchemy import delete
|
||||
|
||||
krabs = session.get(User, 2)
|
||||
session.delete(krabs)
|
||||
session.execute(select(User).where(User.name == "ehkrabs")).first()
|
||||
print('Krabs present: ', krabs in session)
|
||||
|
||||
# orm-enabled
|
||||
squidward = session.get(User, 1)
|
||||
session.execute(delete(User).where(User.name == "squidward"))
|
||||
print('Squidward present: ', squidward in session)
|
||||
|
||||
|
||||
|
||||
# ROLLBACK
|
||||
print('-----rollback-----')
|
||||
print(squid.__dict__)
|
||||
session.rollback()
|
||||
print(squid.__dict__)
|
||||
squid.fullname
|
||||
print(squid.__dict__)
|
||||
print('Krabs present: ', krabs in session)
|
||||
|
||||
|
||||
session.close()
|
||||
|
||||
Reference in New Issue
Block a user