#!/usr/bin/env python
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
from sqlalchemy.orm import sessionmaker # 创建连接 echo=True 就会打印出所有过程信息
engine = create_engine("mysql+pymysql://root:root@localhost/testuser",encoding="utf-8",echo=True) #
Base = declarative_base() # 生成orm基类 class User(Base):
__tablename__= "user"
id = Column(Integer,primary_key=True)
name = Column(String(32))
password = Column(String(64)) Base.metadata.create_all(engine) # 创建表结构 Session_class = sessionmaker(bind=engine) # 创建与数据库的会话session class 注意,这里返回的是一个class,不是实例 session = Session_class()
#
# user_obj = User(name="zhangpeng",password="123") # 生成你要创建的数据对象
# print(user_obj.name,user_obj.id) # 此时还没有创建对象,ID为None
#
# session.add(user_obj)
# print(user_obj.name,user_obj.id) # 此时依然为空
# session.commit() # 统一提交 # filter_by(name="zhangpeng") 条件; all 全部 first 第一个
# filter(User.id>2) ;按照ID查询
# data = session.query(User).filter_by(name="zhangsan").all() # -- 修改
data = session.query(User).filter_by(name="aaa").first()
if(data is not None):
data.name = "zhangsan" session.commit() # 提交
# -- 修改 # -- 回滚
my_user = session.query(User).filter_by(id=1).first()
my_user.name = "Jack"
fake_user = User(name="Rain",password="")
session.add(fake_user)
# 这时候看session里有你刚添加的数据
print("....",session.query(User).filter(User.name.in_(["jack","rain"])).all()) session.rollback() # 此时回滚一下,之前数据应该就消失了
print(session.query(User).filter(User.name.in_(["jack","rain"])).all()) # -- 回滚 # 获取所有数据
print(session.query(User.name,User.id).all()) # 多条件查询
objs = session.query(User).filter(User.id>0).filter(User.id<7).all()
# 查询出来是一个数组
print(objs[0].name) # 模糊查询,并统计个数
count = session.query(User).filter(User.name.like("%y%")).count()
print(count) # 分组查询
from sqlalchemy import func
print(session.query(func.count(User.name),User.name).group_by(User.name).all()) # 删除
del_user = session.query(User).filter(User.id==1).first()
session.delete(del_user)
session.commit()

pythonのsqlalchemy简单查询的更多相关文章

  1. python开发mysql:表关系&单表简单查询

    一 一对多,多对一 1.1 建立多对一 ,一对多的关系需要注意 先建立被关联的表,被关联的字段必须保证时唯一的 在创建关联的表,关联的字段一定是可以重复的 1.2 示例: 出版社 多对一,多个老师可能 ...

  2. SQLAlchemy复杂查询

    最近个人用python + flask搞了一个小项目,ORM用到的是SQLAlchemy.   SQLAlchemy的查询方式非常灵活,你所能想像到的复杂SQL 语句,基本上都可以实现.这里简单的总结 ...

  3. Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python

    http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...

  4. Python SQLAlchemy入门教程

    本文将以Mysql举例,介绍sqlalchemy的基本用法.其中,Python版本为2.7,sqlalchemy版本为1.1.6. 一. 介绍 SQLAlchemy是Python中最有名的ORM工具. ...

  5. Python SqlAlchemy使用方法

    1.初始化连接 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create ...

  6. python+SQLAlchemy+爬虫

    python+SQLAlchemy+爬虫 前面分享了SQLAlchemy的知识,这次我共享一下学习用python开发爬虫再把爬出来的数据放到用SQLAlchemy的数据库上面的知识,当然我这个是带测试 ...

  7. Python 实现简单的 Web

    简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...

  8. T-SQL简单查询语句

    简单查询: 1.最简单查询(查所有数据)select * from 表名: 注:* 代表所有列select * from info 2.查询指定列select code,name from info ...

  9. python SQLAlchemy

    这里我们记录几个python SQLAlchemy的使用例子: 如何对一个字段进行自增操作 user = session.query(User).with_lockmode('update').get ...

随机推荐

  1. 打印流(PrintWriter )

    PrintWriter package cn.lijun.demo1; import java.io.File; import java.io.FileNotFoundException; impor ...

  2. 2018 icpc-ecfinal后记

    打完这场终于可以回校0基础预习一个学期的课程了.    安详.jpg 可惜了,差了点罚时没有拿银,不过有了徐州差一分钟银牌的经历之后,已经没有什么能让我遗憾了. 仿佛又打了一场半年前的西安邀请赛,区别 ...

  3. 剑指Offer_编程题_10

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? class Solution { public: int r ...

  4. Burrow 服务的安装部署

    Burrow 服务的安装部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近协助开发的同时帮忙把10个topic的数据使用5个topic的来工作.结果发现数据flume在手机数 ...

  5. Shell命令的执行顺序

    shell执行命令的步骤顺序如上图,看起来有些复杂. 当命令行被处理时,每一个步骤都是在Shell的内存里发生的;Shell不会真的把每个步骤的发生显示给你看. 所以,你可以假想这事我们偷窥Shell ...

  6. C++ 对象实例化(转)

    C++ 对象实例化的一些概念: C++ 如果直接定义类,如classA  a; a存在栈上(也意味着复制了对象a在栈中):如果classA  a = new classA就存在堆中. 一.new创建类 ...

  7. Mac下显示网页全屏快捷键

    control+command+F mac下谷歌浏览器全屏时隐藏头部:(隐藏标签页和地址栏) command+shift+B

  8. 使用sort函数进行排序

    介绍 C++的一个重要组成部分STL(Standard Template Library),即标准模板库,是一些高级数据结构和算法的集合:高级数据结构(容器)主要包括list.set.vector.m ...

  9. js中检测数据类型的几种方式

    1.typeof 一元运算符,用来检测数据类型.只可以检测number,string,boolean,object,function,undefined. 对于基本数据类型是没有问题的,但是遇到引用数 ...

  10. Django眼中的MVC

    (转载)http://www.cnblogs.com/michaely/p/3340087.html MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 ...