python ORM模块sqlalchemy的使用
1、安装sqlalchemy
pip install sqlalchemy
2、导入必要的包及模块
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
3、创建数据库连接实例
#创建数据库连接实例(#"数据库类型+数据库模块://用户名:密码@主机/库名")
db=sqlalchemy.create_engine("mysql+pymysql://root:q1q1q1@localhost/a")
4、创建一个元类的继承类
base = declarative_base(db)
5、定义一个表(使用类)继承base
class Student(base):
__tablename__ = "student"
id = sqlalchemy.Column(sqlalchemy.Integer,primary_key=True)
name = sqlalchemy.Column(sqlalchemy.String(32))
age = sqlalchemy.Column(sqlalchemy.String(32))
6、创建表
base.metadata返回sqlalchemy.schema.MetaData对象,它是所有Table对象的集合,调用create_all()该对象会触发CREATE TABLE语句,如果数据库还不存在这些表的话。
if __name__ == "__main__":
base.metadata.create_all(db)
脚本运行前a数据库中的表:

运行上述代码之后,a数据库表:

7、绑定连接并创建session
cursor = sessionmaker(bind=db) #得到的时一个类
session = cursor() #实例
8、增(插入数据)
①插入一条数据
stu = Student(
id = 1,
name = "张1",
age = 18
)
session.add(stu)
session.commit()

②同时插入多条数据
session.add_all([
Student(id=2,name="张2",age=19),
Student(id=3,name="张3",age=20)
])
session.commit()

9、查询
①查询所有数据
all_data = session.query(Student).all()#得到的是一个可迭代对象
for data in all_data:
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))

②根据条件查询多条数据
many_data = session.query(Student).filter_by(age=18)
print(many_data)#实际是一个sql查询语句,其还是一个存储一个对象的带迭代内容
for data in many_data:
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))

还可以通过序列解包的方式获取数据
many_data = session.query(Student).filter_by(age=18)
data, = many_data
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))
③查询一条数据
data = session.query(Student).get(ident=3) #查一条,只能以主键查
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))
10、删除
#先查询一条
data = session.query(Student).get(ident=3)
#然后删除
session.delete(data)
#然后提交操作
session.commit()

11、修改
# 先查询一条
data = session.query(Student).get(ident=2)
#然后删除
data.name = "老李头"
#然后提交操作
session.commit()

python ORM模块sqlalchemy的使用的更多相关文章
- python ORM之sqlalchemy
前沿对象关系映射ORM是在实际应用编程中常用到的技术,它在对象和关系之间建立了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化.简单来说就是开发人员在使用ORM模型编程时,不需 ...
- Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
1. 添加一个新对象 前面介绍了映射到实体表的映射类User,如果我们想将其持久化(Persist),那么就需要将这个由User类建立的对象实例添加到我们先前创建的Session会话实例中: 复制代码 ...
- python连接数据库使用SQLAlchemy
参考python核心编程 ORM(Object Relational Mapper),如果你是一个更愿意操作Python对象而不是SQL查询的程序员,并且仍然希望使用关系型数据库作为你的后端,那么你可 ...
- Python与数据库[2] -> 关系对象映射/ORM[0] -> ORM 与 sqlalchemy 模块
ORM 与 sqlalchemy 1 关于ORM / About ORM 1.1 ORM定义 / Definition of ORM ORM(Object Relational Mapping),即对 ...
- python(十二)下:ORM框架SQLAlchemy使用学习
此出处:http://blog.csdn.net/fgf00/article/details/52949973 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 ...
- 第二百八十九节,MySQL数据库-ORM之sqlalchemy模块操作数据库
MySQL数据库-ORM之sqlalchemy模块操作数据库 sqlalchemy第三方模块 sqlalchemysqlalchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API ...
- python的ORM框架SQLAlchemy
本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 一.ORM介绍 如果写程序用pymysql和程序交互,那是不是要写原生sql语句 ...
- Django和SQLAlchemy,哪个Python ORM更好?
ORM是什么? 在介绍Python下的两个ORM框架(Django和SQLAlchemy)的区别之前,我们首先要充分了解ORM框架的用途. ORM代表对象关系映射.ORM中的每个单词解释了他们在实际项 ...
- 【Python】ORM框架SQLAlchemy的使用
ORM和SQLAlchemy简介 对象关系映射(Object Relational Mapping,简称ORM),简单的来说,ORM是将数据库中的表与面向对象语言中的类建立了一种对应的关系.然后我们操 ...
随机推荐
- 【ARTS】01_40_左耳听风-201900812~201900818
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- NET架构
.NET架构开发应知应会 .NET程序是基于.NET Framework..NET Core.Mono.[.NET实现]开发和运行的 ,定义以上[.NET实现]的标准规范称为.NET Standard ...
- PHP去重的简单写法
PHP去重的简单写法用array_flip实现去重效果 <pre><?php$arr =array("a"=>"a1","b& ...
- gcc 不同版本的安装
系统环境centos 6.5 使用root用户进行安装,此方法会将gcc安装至/usr/bin目录下 curl -Lks http://www.hop5.in/yum/el6/hop5.repo ...
- 《ucore lab5》实验报告
资源 ucore在线实验指导书 我的ucore实验代码 练习1: 加载应用程序并执行(需要编码) 题目 do_execv函数调用load_icode(位于kern/process/proc.c中) 来 ...
- Python 绘图库Matplotlib入门教程
0 简单介绍 Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像. 1 安装 pip install matplotlib 2 入门代码 ...
- LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
230. 二叉搜索树中第K小的元素 230. Kth Smallest Element in a BST 题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的 ...
- Redis持久化RDB、AOF
持久化的意思就是保存,保存到硬盘.第一次接触这个词是在几年前学习EF. 为什么要持久化 redis定义:Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代 ...
- Linux基础-01-Linux基础命令
1. Linux命令的格式 1) Linux命令的语法格式: 命令 [选项] [参数] 2) 命令格式中命令.选项.参数的具体含义 a) 命令:告诉Linux(UNIX)操作系统做(执行)什么. b) ...
- python学习-52 XML模块
XML模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但是json使用起来更简单. 例如:创建一个xml文件 <data> <country name=&q ...