Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker, relationship
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy import Column, Integer, Text, ForeignKey
- sa_engine = create_engine("sqlite:///:memory:")
- Session = sessionmaker(bind=sa_engine)
- session = Session()
- Base = declarative_base()
- class Parent(Base):
- __tablename__ = 'parent'
- id = Column(Integer, primary_key=True)
- name = Column(Text)
- children = relationship('Child', backref='parent')
- def __repr__(self):
- return self.name
- class Child(Base):
- __tablename__ = 'child'
- id = Column(Integer, primary_key=True)
- name = Column(Text)
- parent_id = Column(Integer, ForeignKey('parent.id'))
- def __repr__(self):
- return self.name
- Base.metadata.create_all(sa_engine)
- p = Parent(name='Thomas')
- session.add(p)
- c1 = Child(name="Mary")
- c2 = Child(name="John")
- c3 = Child(name="Kenny")
- p.children.append(c1)
- p.children.append(c2)
- p.children.append(c3)
- session.commit()
- p = session.query(Parent).get(1)
- print(p.children) #prints [Mary, John, Kenny]
- temp1 = p.children[1]
- temp2 = p.children[2]
- p.children[2] = temp1
- p.children[1] = temp2
- print(p.children) #prints [Mary, Kenny, John]
- session.commit()
- print(p.children) #prints [Mary, John]. Oh my God! They killed Kenny!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement