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()
      
原文地址:https://www.cnblogs.com/wuxiaoshi/p/14140146.html