Advertisement
Guest User

Untitled

a guest
Apr 20th, 2023
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. from datetime import date
  2.  
  3. from sqlalchemy import Column, Date, Integer, Row, create_engine, select
  4. from sqlalchemy.orm import DeclarativeBase, Mapped, Session
  5.  
  6. engine = create_engine("sqlite://")
  7.  
  8.  
  9. class Base(DeclarativeBase):
  10.     pass
  11.  
  12.  
  13. class Payment(Base):
  14.     __tablename__ = "payment"
  15.     id: Mapped[int] = Column(Integer, primary_key=True, autoincrement=False)
  16.     date_paid: Mapped[date] = Column(Date)
  17.  
  18.     def __repr__(self) -> str:
  19.         return f"Payment(id={repr(self.id)}, date_paid={repr(self.date_paid)})"
  20.  
  21.  
  22. Base.metadata.create_all(engine)
  23.  
  24. # example data
  25. with Session(engine) as sess:
  26.     sess.add(Payment(id=1, date_paid=date(2001, 1, 1)))
  27.     sess.commit()
  28.  
  29. with Session(engine) as sess:
  30.     row: Row = sess.execute(select(Payment).where(Payment.id == 1)).one()
  31.     print(type(row))  # <class 'sqlalchemy.engine.row.Row'>
  32.     pmt_1: Payment = row[0]
  33.     print(pmt_1)  # Payment(id=1, date_paid=datetime.date(2001, 1, 1))
  34.     print(f">>> object is{'' if pmt_1 in sess else ' NOT'} in the session")
  35.     # >>> object is in the session
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement