sqlalchemy mysql_初识sqlalchemy

v2-02ded01f98a7a4d6b3b832df60316c27_1440w.jpg?source=172ae18b

sqlalchemy是用python写的ORM工具类库,类似于Java的Hibernate,其可以将数据库表映射成Python Class,然后使用OOP的方式完成数据库对象操作。

Sqlalchemy的优势在于企业级(重量级)的API,使其代码有健壮性和适应性。另外,就是使用人较多,与pandas有良好的互动。

Sqlalchemy声称跨数据库平台,其也有Sqlite、Mysql、Oracel等主流数据库的Db方言接口,但不是所有的Sqlalchemy都能适用于所有的数据库平台。使用Sqlalchemy时,换数据库平台必须进行全面测试。

本文就简单介绍一下这款产品,第一章将列出Sqlalchemy的一些入门资源,第二章将通过一个One to Many的数据表例子说明如何实现简单的增删改查功能。

说明本文中代码在python 3.6, sqlalchemy 1.3.5环境下测试通过。

资源

官方网站:https://www.sqlalchemy.org/

文档网站:https://docs.sqlalchemy.org/en/13/

  • 主要功能介绍:https://docs.sqlalchemy.org/en/13/orm/tutorial.html
  • Mapping功能文档:https://docs.sqlalchemy.org/en/13/orm/mapper_config.html

HelloWorld例子

大部分语言都从一个HelloWorld程序开始,Sqlalchemy也是。

这个例子是"Tree - Node"的一个简单一对多数据库操作示范。其使用的是mysql数据库(基于阿里云)。代码实现的功能如下:

  • 根据class的定义,创建数据库表结构;
  • 新增一个Tree,含有两个Node;
  • 按名称(单条件、多条件)查询;
  • 实现Order By和Group By
  • 实现Count
  • 实现分页查询
  • 修改Node内容;
  • 删除Tree(级联删除)

python 代码如下

Python代码实现如下,源代码地址:xxxx

#!/usr/bin/env python

代码中需注意的点是:

  • 一对多,关系写在父类中,便于申明级联删除等属性,外键写在子类中;
  • 外键字段类型必须严格一致;
  • 父子关系中,要用新版的backref不要用老版的back_populates;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值