前言

本文讲解在Python语言中使用SQLAlchemy库操纵MySQL数据库的方法。

由于具体内容涉及较多,本文仅以插入及展示数据为例,更多内容请查阅有关文档。

ORM

ORM也即对象 - 关系映射。

在前文中,操纵的对象针对数据库中的关系表。而ORM机制能让你的处理对象由这些表转换成Python中的表对象。

这样的机制意义不小,它能让你在不了解SQL语句的条件下使用数据库。

准备工作

1. 安装Python和MySQL;
2. 安装SQLAlchemy。("easy_install sqlalchemy"即可)。

总体步骤

1. 创建一个数据库;
2. 导入SQLAlchemy库相关内容 (详见下面代码展示部分);
3. 定义表对象结构;
4. 建立数据库连接引擎;
5. 基于 4 中创建的引擎创建一个会话类型;
6. 定义会话对象;
7. 定义并初始化表对象;
8. 插入表对象;
9. 关闭会话。

代码示例

 1 # -*- coding: utf-8 -*-
 2 # ================================================
 3 #  作者: 方萌
 4 #  创建时间: 20**/**/**
 5 #  版本号: 1.0
 6 #  联系方式: 1505033833@qq.com
 7 # ================================================
 8 # sqlalchemy 相关模块
 9 from sqlalchemy import Column, String, INT, create_engine
10 from sqlalchemy.orm import sessionmaker
11 from sqlalchemy.ext.declarative import declarative_base
12 # 表对象的基类:
13 Base = declarative_base()
14 # 定义User表对象
15 class User(Base):
16     # 表名:
17     __tablename__ = 'testTable'
18     # 表的结构:
19     name = Column(String(20), primary_key=True)
20     age = Column(INT)
21 # 建立数据库连接引擎
22 engine = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/testDB')
23 # 创建DBSession类型
24 DBSession = sessionmaker(bind=engine)
25 # 创建session对象
26 session = DBSession()
27 # 创建新User对象
28 new_user = User(name='方萌ORM', age='25')
29 # 添加到session
30 session.add(new_user)
31 # 提交即保存到数据库
32 session.commit()
33 # 关闭session
34 session.close()

运行结果

小结

基于ORM机制的库还有很多,可根据实际需要进行选择。

本文旨在讲述ORM的思想以及展示基本使用套路。更多高级的用法(如创建表,创建外键关系等)请查阅相关文档。

转载于:https://www.cnblogs.com/muchen/p/6882589.html

第二篇:操纵MySQL数据库(2) - 基于ORM思想的SQLAlchemy库相关推荐

  1. 第二篇:MySQL之InnoDB物理存储结构

    第二篇:MySQL中InnoDB引擎的物理存储结构 1. 个人理解 看了很多MySQL的书籍和博客,感觉都是互相抄来抄去,把知识点的罗列,讲不清楚前因后果,让人看起来莫名其妙的.所以,我决定从MySQ ...

  2. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  3. 第二十三章 MySQL数据库 手册2 SQL语句

    第二十三章 MySQL数据库 手册2 SQL语句 实验二:用SQL语句,管理数据库 `危险命令,delete 后不加 where 条件代表删除所有数据 delete.` `更加危险的删除命令trunc ...

  4. MySQL数据库应用形考_2020国开中优教育《MySQL数据库应用》形考任务题库

    2020国开中优教育<MySQL数据库应用>形考任务题库 1.以下哪个不属于"汽车用品网上商城"的实体( ) 用户 用户类别 汽车配件 用户编号 正确答案 2.URT ...

  5. Java连接并操纵MySQL数据库的全过程

    文章目录 一.安装MySQL 二.Navicat连接MySQL 三.Java连接MySQL (一).使用 JDBC 连接 MySQL 数据库. 1. 下载驱动包 2.解压 3.在IDEA中导入jar包 ...

  6. 创建用户赋权限_MySQL实战第84篇:MySQL数据库添加用户和赋权限,在8.0版本!

    欢迎来到MySQL实战第84篇,修炼MySQL,让我们更加的自信! [查看数据库] [使用mysql数据库] [创建新用户:mytest,密码111222] create user mytest id ...

  7. c access mysql数据库_基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)...

    基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo) 一.三种数据库的主要对比 数据库类型 特点 Microsoft Access 桌面数据库.数据库载体是单个文件 ...

  8. (19)一篇掌握MySQL数据库基础下 基本操作(外键约束、建表原则、多表查询、子查询)

    MySQL数据库基础下 一.修改表--添加外键约束 二.多表之间的建表原则 1.建数据库原则:通常情况下,一个项目/应用建一个数据库 2.多表之间的表原则: (1)一对多:分类和商品 (一个分类对应多 ...

  9. 【mysql篇】mysql数据库知识点(四种语言)

    mysql数据库语言分为四种DDL,DQL,DML,DCL下面我们一一介绍: 注:(上图取自黑马程序员的课程APP中,这些笔记也是看了黑马程序员的课程之后做的): 一,       DDL(data ...

最新文章

  1. 宣传推广费用_企业如何做好网络推广,提高网络推广的转化率?
  2. 苹果M1用着舒服的原因找到了,英特尔:学到了,下次我也用
  3. 定期清空Linux系统日志文件
  4. 如何替公司省下数千万勒索费用
  5. 车载安卓中控改鸿蒙,教你改装车子中控安卓大屏,看一遍你就会了,改完后低配秒变高配...
  6. 一文带你全面认识Excel催化剂系列功能
  7. 深入css布局 (1) — 盒模型 元素分类
  8. uva 11491——Erasing and Winning
  9. android自定义图片+文字控件四种实现方法,Android自定义“图片+文字”控件四种实现方法之 二--------个人最推荐的一种...
  10. 一加9R将推12+256GB新版本:骁龙870+120Hz高刷屏
  11. 2017.11.24
  12. cmos和ttl_TTL与CMOS电路怎么区分
  13. 屏幕录像专家录制超清视频教程如何解决转码后不清晰问题
  14. Linux网卡bond
  15. 在kindle上阅读网络小说的正确方法——Kindle网文助手
  16. azul zing_Azul Systems CTO讨论Lambda并提高Java社区的投入
  17. 一个excel版进度管理软件的需求
  18. 一个已经转行一年的程序员的感受
  19. 股票北向资金数据接口在哪里?
  20. Zynga欲收购风靡全球的画画猜字游戏Draw Something

热门文章

  1. Apache Sentry 第一弹:Server启动、连接Hue、分组详解
  2. 图形图像处理,CAD控件Simulation and Verification提供模拟机器的工具运转机床和车床材料的搬运控件...
  3. esx4克隆后的处理工作
  4. 蓝桥杯 ADV-193算法提高 盾神与条状项链
  5. java如何等待异步结果_如何等待异步方法完成?
  6. python登录交换机执行命令_利用Python脚本登录交换机实现自动配置备份的方法
  7. 圆柱与平面接触宽度_圆柱滚子轴承保持架锁爪变形引起的轴承故障
  8. lsof查找放进linux回收站中的删除文件,并彻底删除或恢复文件
  9. linux中开启snmp协议
  10. zabbix3.0 监控mysql服务器性能实现过程