#-*-coding:utf-8-*- #__author__ = "logan.xu" import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,Integer,String from sqlalchemy.orm import sessionmaker engine=create_engine("mysql+pymysql://root:12345678@localhost/news",encoding='utf-8',echo=True) Base=declarative_base() class User(Base): __tablename__='user' id=Column(Integer,primary_key=True) name=Column(String(32)) password=Column(String(64)) def __repr__(self): return "<%s name:%s>" %(self.id,self.name) Base.metadata.create_all(engine) #創建表結構 Session_class=sessionmaker(bind=engine) #創建與數據庫的會話session class,注意,這里返回給session的是這個class,不是實例 Session=Session_class() #生成session實例 #查詢 #data=Session.query(User).filter(User.id>2).all() #filter可以寫大於,filter_by不可用寫大於 #data=Session.query(User).filter(User.id>1).filter(User.id<3).all() #列取多個條件查詢 #data=Session.query(User).filter_by(id=2).all() #data=Session.query(User).filter(User.id==2).all() #data=Session.query(User).filter_by().first() #列出一個 #print(data) #修改 #data=Session.query(User).filter(User.id>1).filter(User.id<4).first() #print(data) #data.name="Jack Liu" #data.passwod="Shit happens" #回滾 fake_user=User(name='Rain',password='12345') Session.add(fake_user) print(Session.query(User).filter(User.name.in_(['Jack','rain'])).all()) Session.rollback() #此時你rollback一下 print("after rollback") print(Session.query(User).filter(User.name.in_(['Jack','rain'])).all()) Session.commit() #現在才統一提交,創新數據