千家信息网

python-sqlalchemy

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqla
千家信息网最后更新 2025年01月20日python-sqlalchemy
from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,Stringfrom sqlalchemy.orm import sessionmakerfrom sqlalchemy import funcengine=create_engine(    "mysql+pymysql://root:123456@localhost/mxm_db",    encoding='utf-8',echo=False)Base=declarative_base()#生成orm基类class User(Base):    __tablename__='user'    id=Column(Integer,primary_key=True)    name=Column(String(32))    password=Column(String(64))    def __repr__(self):        return '<%s,%s,%s>' %(self.id,self.name,self.password)Base.metadata.create_all(engine)Session_class=sessionmaker(bind=engine)#创建与数据库的会话classSession=Session_class()#生成session实例,跟cursor一样#1.增加数据# user_obj=User(name='mxm1',password='mxm1')#生成你要创建的数据对象# print(user_obj.name,user_obj.password)# Session.add(user_obj)#把要创建的数据对象,添加到这个session里# Session.commit()#统一提交,创建数据#2.查询数据data=Session.query(User).filter_by(name='mxm1').first()#查询不需要commitprint(data)#3.修改数据#data.name='mxm2'#data.password='mxm2'#Session.commit()#4.数据回滚#Session.rollback()#filter(User.name.in_(['name1','name2']))#5.统计#data=Session.query(User).filter_by(password='mxm').\#    filter_by(name='mxm').count()#查询不需要commit#print(data)#6.分组#data=Session.query(User.name,func.count(User.name)).group_by(User.name).all()#print(data)
0