zoukankan      html  css  js  c++  java
  • Python3-sqlalchemy-orm 分组统计

    #-*-coding:utf-8-*-
    #__author__ = "logan.xu"
    
    
    import sqlalchemy
    from sqlalchemy import create_engine,funcfrom 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() #现在才统一提交,创新数据
    
    #分组统计
    fake_user=User(name='Rain',password='12345')
    Session.add(fake_user)
    
    print(Session.query(User.name,func.count(User.name)).group_by(User.name).all())
    Session.commit() #现在才统一提交,创新数据

  • 相关阅读:
    符瑞艺 160809228_C语言程序设计实验2 选择结构程序设计
    页面布局class常见命名规范
    CSS学习笔记
    HTML学习笔记
    虚拟机Centos7设置ip地址,并ping真机ip
    vue单页面开发和多页面开发的概念,及优缺点?
    传统的DOM渲染方式?
    面试题
    通过电脑chrome调试手机真机打开的微信H5页面,调试电脑微信H5页面(转载自 乐乐熊小妹)
    常见前端面试题及答案
  • 原文地址:https://www.cnblogs.com/drizzle-xu/p/10239288.html
Copyright © 2011-2022 走看看