Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy import create_engine, Column, Integer, String, Table
- from sqlalchemy.orm import sessionmaker
- Base = declarative_base()
- class Emails(Base):
- __tablename__ = 'Emails'
- id = Column(Integer, primary_key=True)
- owner_id = Column(Integer)
- email = Column(String)
- def __repr__(self):
- return "<Emails(owner_id='%s', email='%s')>" % (
- self.owner_id, self.email)
- class PhoneNumbers(Base):
- __tablename__ = 'PhoneNumbers'
- id = Column(Integer, primary_key=True)
- owner_id = Column(Integer)
- number = Column(Integer)
- def __repr__(self):
- return "<PhoneNumbers(owner_id='%s', number='%s')>" % (
- self.owner_id, self.number)
- class Addresses(Base):
- __tablename__ = 'Addresses'
- id = Column(Integer, primary_key=True)
- city_name = Column(String)
- street_name = Column(String)
- postal_code = Column(String)
- def __repr__(self):
- return "<Addresses(city_name='%s', street='%s', postal_code='%s')>" % (
- self.city_name, self.street_name, self.postal_code)
- class People(Base):
- __tablename__ = 'People'
- id = Column(Integer, primary_key=True)
- name = Column(String)
- surname = Column(String)
- address = Column(Integer)
- person_id = Column(Integer) # id osoby
- def __repr__(self):
- return "<People(id='%s', name='%s', surname='%s', address='%s', person_id='%s')>" % (
- self.id, self.name, self.surname, self.address,self.person_id)
- def add_person(imie: str = None, nazwisko: str = None, address_obj: Addresses = None,
- phone_numbers_list: list = None, emails_list: list = None, lista_osob: int = None):
- session = Session()
- session.add(address_obj)
- session.commit()
- adres = session.query(Addresses).filter_by(city_name=address_obj.city_name, street_name=address_obj.street_name,
- postal_code=address_obj.postal_code).first()
- session.commit()
- person = People(name=imie, surname=nazwisko, address=adres.id, person_id=lista_osob)
- session.add(person)
- session.commit()
- for email in emails_list:
- session.add(Emails(owner_id=person.id, email=email))
- for number in phone_numbers_list:
- session.add(PhoneNumbers(owner_id=person.id, number=number))
- session.commit()
- session.close()
- def find_person(imie: str = None, nazwisko: str = None):
- session = Session()
- person = session.query(People).filter_by(name=imie, surname=nazwisko).first()
- phone_numbers = session.query(PhoneNumbers).filter_by(owner_id=person.id).all()
- emails = session.query(Emails).filter_by(owner_id=person.id).all()
- print(person)
- print(phone_numbers)
- print(emails)
- session.close()
- engine = create_engine("sqlite:///people.db")
- Base.metadata.create_all(engine)
- Session = sessionmaker(bind=engine)
- # address = Addresses(city_name="Beka", street_name="Fajna", postal_code="13-337")
- # add_person(imie="jozef", nazwisko="ziomal", address_obj=address, phone_numbers_list=[222, 444, 555], emails_list=["bbbbba@gmail.pl", "gmail@hotmail.com"], lista_osob=10)
- find_person("jozef", "ziomal")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement