sqlalchemy 单表操作

SQLAlchemy

  • 创建基类

    from sqlalchemy.ext.declarative import declarative_base
    # 基类
    Base = declarative_base()
    
  • 创建 session 会话

    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
    # 创建连接
    engine = create_engine('mysql://root:ocnt_123@49.234.163.2:3306/admin')
    Session = sessionmaker(bind=engine)
    # 创建session会话
    session = Session()
    
  • 单表操作

    • 创建 User

      class User(Base):
          ''' 用户类 '''
          __tablename__ = 'user'
      	# id 主键、自增
          id = Column(Integer,primary_key=True,autoincrement=True)
          # 名称
          name = Column(String(32),unique=True)
      
    • 数据查询

      # 查询所有的数据
      data = session.query(User).all()
      # 查询第一条数据
      data = session.query(User).first()
      # 查询指定的数据列
      data = session.query(User.name).all()
      # 查询name=Bob的数据
      data = session.query(User).filter(User.name=='Bob').first()
      # 按id倒序查询
      data = session.query(User).order_by(User.id.desc()).all()
      # 分页
      data = session.query(User).limit(1).offset(0).all()
      # 查询数量
      data = session.query(User).count()
      # 聚合 求平均数
      data = session.query(func.avg(User.id)).first()
      # 聚合 求和值
      data = session.query(func.sum(User.id)).first()
      
    • 增加数据

      # 添加一条数据
      try:
          user = User(name='xima')
          session.add(user)
          # 事务提交
          session.commit()
      except:
          # 事务回滚
          session.rollback()
       
      -------------------------------------------------------------------------------
      
      # 添加多条数据
      try:
          session.add_all([
              User(name='donghuadijun'),
              User(name='baihushengzhu')
          ])
          session.commit()
      except:
          session.rollback()
      
    • 更新数据

      try:
          session.query(User).filter(User.id==1).update({'name':'FQ'})
          session.commit()
      except:
          session.rollback()
      
    • 删除数据

      try:
          session.query(User).filter(User.id==1).delete()
          session.commit()
      except:
          session.rollback()
      
posted @   巫小诗  阅读(100)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示