1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| from sqlalchemy import Column, String, Integer, create_engine, ForeignKey from sqlalchemy.orm import sessionmaker, declarative_base, relationship
Base = declarative_base()
class User(Base): __tablename__ = 'user'
id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(20), nullable=False, index=True) city_id = Column(Integer, ForeignKey('city.id'))
class City(Base): __tablename__ = 'city'
id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(20), nullable=False, index=True) users = relationship("User", backref="city")
engine = create_engine( "mysql+pymysql://root:root@localhost:3306/test", pool_size=10, pool_recycle=1600, pool_pre_ping=True, pool_use_lifo=True, echo_pool=True, max_overflow=5 ) Base.metadata.create_all(engine) DBSession = sessionmaker(bind=engine)
if __name__ == '__main__': session = DBSession()
try: city = City(name="ShangHai", users=[User(name="A"), User(name="B")]) session.add(city) session.commit() except Exception as e: session.rollback() raise e
res = session.query(User).all() res = session.query(User).first() res = session.query(User).filter(User.name=="A").first() if res: print(res.id, res.name, res.city.name)
delete_user = session.query(User).filter(User.name == "C").first() if delete_user: session.delete(delete_user) session.commit()
session.query(User).filter(User.id==1).update({'name': 'Jack'}) session.commit()
session.execute( City.__table__.insert(), [{"name": 'S' + str(i)} for i in range(10000)] ) session.commit()
session.close()
|