Add Python notes

This commit is contained in:
2022-05-06 00:49:26 +03:00
parent 4c0cdb2f71
commit 1863176b39
57 changed files with 1205 additions and 5 deletions

4
python/sqlalchemy/core.py Normal file → Executable file
View 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
View 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()