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() #现在才统一提交,创新数据

Python3-sqlalchemy-orm 分组统计的更多相关文章
- Python3+SQLAlchemy+Sqlite3实现ORM教程
一.安装 Sqlite3是Python3标准库不需要另外安装,只需要安装SQLAlchemy即可.本文sqlalchemy版本为1.2.12 pip install sqlalchemy 二.ORM操 ...
- Python-12-MySQL & sqlalchemy ORM
MySQL MySQL相关文章这里不在赘述,想了解的点击下面的链接: >> MySQL安装 >> 数据库介绍 && MySQL基本使用 >> MyS ...
- sqlalchemy ORM
本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 1. ORM介绍 orm英文全称object ...
- Python sqlalchemy orm 常用操作
增add # 创建表1 # 注:高级封装 import sqlalchemy # 调用链接数据库 from sqlalchemy import create_engine # 调用基类Base fro ...
- sqlalchemy orm 操作 MySQL
一.ORM介绍 orm英文全称object relational mapping,是对象映射关系程序,简单来说类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了 ...
- python 之路,Day11 (下)- sqlalchemy ORM
python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM ...
- python之SQLAlchemy ORM 上
前言: SQLAlchmey是暑假学的,当时学完后也没及时写博客整理下.这篇博客主要介绍下SQLAlchemy及基本操作,写完后有空做个堡垒机小项目.下篇博客整理写篇关于Web框架和django基础~ ...
- python之SQLAlchemy ORM
前言: 这篇博客主要介绍下SQLAlchemy及基本操作,写完后有空做个堡垒机小项目.有兴趣可看下python之数据库(mysql)操作.下篇博客整理写篇关于Web框架和django基础~~ 一.OR ...
- python3 SQLAlchemy模块使用
更详细的操作介绍:https://www.imooc.com/article/22343 定义: SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对 ...
随机推荐
- js循环修改对象内层元素的值
问题:存在一个对象,该对象的内部元素也为对象,子对象的元素也为对象,...(即多层对象构成的对象,具体如下),那么应该如何修改最内层元素的值(如 obj.a.a.a = 5)? var obj = { ...
- 新建一个DJango项目
好长时间没有用过DJango了,都忘记了怎么使用,哈哈哈,看到一篇讲的很好的博客,直接附链接了. https://blog.csdn.net/woo_home/article/details/9645 ...
- Kubernetes的基本概念和术语
Kubernetes中的大部分概念如Node.Pod.Replication Controller. Service等都可以被看作一种资源对象,几乎所有资源对象都可以通过 Kubernetes提供的k ...
- ASP.NET Core下FreeSql的仓储事务
ASP.NET Core下FreeSql的仓储事务 第一步:配置 Startup.cs 注入 引入包 dotnet add package FreeSql dotnet add package Fre ...
- OpenGL学习笔记(五)变换
目录 变换 向量 向量的运算 向量与标量运算 向量取反 向量加减 求向量长度 向量的单位化 向量相乘 点乘(Dot Product) 叉乘 矩阵 矩阵的加减 矩阵的数乘 矩阵相乘 矩阵与向量相乘 与单 ...
- Spring Boot实现数据访问计数器
1.数据访问计数器 在Spring Boot项目中,有时需要数据访问计数器.大致有下列三种情形: 1)纯计数:如登录的密码错误计数,超过门限N次,则表示计数器满,此时可进行下一步处理,如锁定该账户 ...
- XCTF-Web进阶-upload1
显然是让我们上传文件,思路当然是上传一个木马文件,然后通过蚁剑连接查看目录获取flag. 但是当我们想要上传php文件的时候会出现弹窗,并且连"上传"按钮都被禁用了. ext = ...
- Android面试大揭秘!从技术面被“虐”到征服CTO,全凭这份强到离谱的pdf
在笔者面试这一个月,看了不少文章,也刷了不少面试题,但真正有深度,适合4年及以上Android高工的内容少之又少 在面试准备阶段,笔者准备了三个月左右的时间,结合相关资料及源码,完成了一系列的深度学习 ...
- Distribute SSH Pubkey to Multiple Hosts with Fabric
Generate ssh keys on source host with ssh-keygen; Disable known_hosts prompt(optional): add "St ...
- 保存Total Commander的列宽
Total Commander的默认列宽经常显示不全内容,需要手工调整,用"Menu -> Configuration -> Save Position"可以永久保存列 ...