標籤:commit lex style use 產生 返回 add ssi string
import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, Stringfrom sqlalchemy.orm import sessionmakerengine = create_engine(‘sqlite:///Plan.db‘, encoding=‘utf-8‘)Base = declarative_base() # 產生orm基類class User(Base): __tablename__ = ‘user‘ # 表名 id = Column(Integer, primary_key=True) name = Column(String(32)) password = Column(String(64))Base.metadata.create_all(engine) # 建立表結構Session_class = sessionmaker(bind=engine) # 建立與資料庫的會話session class ,注意,這裡返回給session的是個class,不是執行個體Session = Session_class() # 產生session執行個體# 基礎結束# 插入開始user_obj = User(name="alex", password="alex3714") # 產生你要建立的資料對象print(user_obj.name, user_obj.id) # 此時還沒建立對象呢,不信你列印一下id發現還是NoneSession.add(user_obj) # 把要建立的資料對象添加到這個session裡, 一會統一建立print(user_obj.name, user_obj.id) # 此時也依然還沒建立Session.commit() # 現此才統一提交,建立資料# 插入結束# 查詢開始my_user = Session.query(User).filter_by(name="alex").first()print(my_user)print(my_user.id, my_user.name, my_user.password)# 查詢結束# 修改開始my_user = Session.query(User).filter_by(name="alex").first()my_user.name = "Alex Li"Session.commit()# 修改技術# 多條件查詢objs = Session.query(User).filter(User.id > 0).filter(User.id < 7).all()# 多條件查詢# 統計Session.query(User).filter(User.name.like("Ra%")).count()# 統計# 分組from sqlalchemy import funcprint(Session.query(func.count(User.name), User.name).group_by(User.name).all())# 分組
Python sqlalchemy使用