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之上,使用关系对 ...
随机推荐
- iTextSharp导出PDF模板(报告)
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;us ...
- 【JavaWeb】EL表达式&过滤器&监听器
EL表达式和JSTL EL表达式 EL表达式概述 基本概念 EL表达式,全称是Expression Language.意为表达式语言.它是Servlet规范中的一部分,是JSP2.0规范加入的内容.其 ...
- 双击映射坚果云网盘并打开的AHK源代码
双击映射坚果云网盘并打开的AHK源代码 #SingleInstance,force ;当此脚本已经运行时自动替换旧实例再次运行.#Persistent ;让脚本持久运行(即直到用户关闭或遇到 Exit ...
- Git基本理论---重点
Git本地有三个工作区域: 工作目录(Working Directory): 存放项目代码 暂存区(Stage/Index) : 临时存放文件的改动,保存的是文件列表信息 资源库 (Repositor ...
- 数据结构算法学习之队列(数组模拟java实现)
数组模拟队列 数组模拟队列 今天学习数组模拟队列.队列常用于生活中的方方面面.比如银行叫号排队.实际上就是队列.所有人抽号排队.先去的先抽号.所以靠前的号最后会先被叫到然后出队.后边的会随之往前移位. ...
- 洛谷P1377题解
题面 首先他叫我们建一颗笛卡尔树,所以我们就建一颗笛卡尔树. 然后他说要生成序列中最小的.想到笛卡尔树的一条性质:左<根<右.但是根节点必须先插进去.他的两个儿子用贪心的思想就知道是先选左 ...
- web笔记随笔
1.Web服务组件 8.第三方内容:广告统计.mockup 7.Web前端框架: HTML5. jQuery. Bootstrap 6.Web应用: CMS. BBS. Blog 5.Web开发框架: ...
- JAVA基础语法:函数(方法)、类和对象(转载)
4.JAVA基础语法:函数(方法).类和对象 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块. 一个函数包括这几部分: 函数头 函数头包括函数访问修饰符,函数返回值类型, 函数名, ...
- 批量删除gmail邮件
以删除tor.com发送的邮件为例说明. 首先点击邮件搜索框右边的三角,在"发件人"下面写上"tor.com": 点"搜索"按钮,看一下范围 ...
- Java 多线程与并发【原理第一部分笔记】
Java 多线程与并发[原理第一部分笔记] Synchronized synchronized的基本含义以及使用方式 在Java中线程安全问题的主要诱因就是存在共享数据(也称为临界资源)以及存在多条线 ...