1 # !usr/bin/env python 2 # -*-coding:utf-8-*- 3 # Author calmyan 4 # python 5 # 2017/7/6 21:29 6 # __author__='Administrator' 7 from sqlalchemy.ext.declarative import declarative_base 8 from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index 9 from sqlalchemy.orm import sessionmaker, relationship 10 from sqlalchemy import create_engine 11 from sqlalchemy import func # 统计 12 13 # 用户 密码 主机 库 14 engine = create_engine( " mysql+pymysql://root:root@127.0.0.1:3306/test " ,encoding= " utf-8 " ,echo= False) 15 16 Base = declarative_base() # 生成orm 基类 17 class User_2(Base): 18 __tablename__ = ' user ' # 表名 19 id = Column(Integer,primary_key=True) # 整数类型 设为主键 20 name = Column(String(32)) # 字符串类型 21 age = Column(Integer) 22 addr= Column(String(256 )) 23 24 def __repr__ (self): #输出查询 25 return ' %s>name:%s--age:%saddrs:%s ' % (self.id,self.name,self.age,self.addr) 26 27 28 Session_class=sessionmaker(bind=engine) # 创建与数据库的会话 类 29 Session=Session_class() # 生成实例 30 31 # 增加 32 ''' 33 user_obj =User(name="sa2",addrs="1234")#生成你要创建的数据对象 34 Session.add(user_obj)# 添加记录 35 ''' 36 # 添加一组数据 37 ''' 38 Session.add_all([ 39 User(name="abcg",age=34,addr="sdfsdf"), 40 User(name="bcdq",age=11,addr="chaense") 41 ]) 42 ''' 43 # 删除 44 ''' 45 Session.query(User).filter(User.id>3).filter(User.id<6).delete() 46 ''' 47 # 查询 条件 所有 48 data =Session.query(User_2).filter_by(id=2 ).all() 49 # 多个条件 50 data2 =Session.query(User_2).filter(User_2.id>2).filter(User_2.id<5 ).all() 51 52 53 # 改 54 55 Session.query(User_2).filter(User_2.id ==2).update({ " name " : " 099 " }) 56 print (data) 57 print (data2) 58 ''' 59 print(Session.query(User).filter(User.id>2).filter(User.name.in_(["sa",'sa2'])).all()) 60 Session.rollback()#回滚操作 61 print(Session.query(User).filter(User.id>2).filter(User.name.in_(["sa",'sa2'])).all()) 62 ''' 63 print (Session.query(User_2).filter(User_2.id>2).filter(User_2.name.in_([ " sa " , ' sa2 ' ])).count()) # 统计符合条件出现的次数 64 counts=Session.query(User_2).filter(User_2.id>2).filter(User_2.name.in_([ ' bcd ' ])).count() # 统计符合条件出现的次数 65 print (counts) 66 # 分组查询 字段 统计次数 字段 67 gurps= Session.query(User_2.name,func.count(User_2.name)).group_by(User_2.name).all() 68 print (gurps) 69 # 以addrs为条件 70 gurps1= Session.query(User_2.name,func.count(User_2.name)).group_by(User_2.addr).all() 71 print (gurps1) 72 73 74 Session测试数据mit() # 关闭事务
查看更多关于python第六十六天--sqlalchemy的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did81923