MsSql

关注公众号 jb51net

关闭
首页 > 数据库 > MsSql > SQLAlchemy详解

SQLAlchemy案例详解

作者:Se7eN_HOU

SQLAlchemy 是 Python SQL 工具包和对象关系映射器,为应用程序开发人员提供SQL的全部功能和灵活性,这篇文章主要介绍了SQLAlchemy详解,需要的朋友可以参考下

一、SQLAlchemy介绍

  SQLAlchemy 是 Python SQL 工具包和对象关系映射器,为应用程序开发人员提供 SQL 的全部功能和灵活性。

  SQLAlchemy支持SQLite、PostgreSQL、Oracle、MySQL、MariaDB、Microsoft SQL Server等多种数据库。

二、SQLAlchemy安装

  我安装的版本是:SQLAlchemy==2.0.29。注意SQLAlchemy2.x以上的版本和1.x版本差别还是挺大的,注意版本。

  因为SQLAlchemy不能直接操作数据库,还需要python中的pymysql第三方库,所以还需要安装pymysql

  PyMySQL==1.1.0.

三、创建测试数据库

  创建一个用于测试的数据库

  其中sqlalchemydb就是测试数据库

四、封装SQLAlchemyDB类

  在python项目根目录下创建一个sqlalchemy_db.py文件,当然你也可以在其他目录下创建。其中内容如下:

  说明1:该文件sqlalchemy_db.py的作用是封装一个SQLAlchemy的类,为实例化sqlAlchemy对象做准备

  说明2:self.engine是连接数据的引擎设置,只有设置了engine,我们才能通过sqlalchemy对象操作数据库

  说明3:self.session可以理解为数据库的操作对象,我们对数据库的操作都是基于该session实现的。

  说明4:engine参数解释

说明5:scoped_session创建的session是线程安全的。

五、创建model模型  

5.1 SQLAlchemy支持的数据类型

5.2 SQLAlchemy字段常用的约束

5.3 创建测试的model.py文件

    在项目的根目录或者你需要的地方创建一个model.py文件,内容如下:

    说明1:为了测试效果,我们在这个model类中尽可能的多展示了不同字段的使用

    说明2:Base.metadata.create_all() 会将我们的模型自动映射到数据库中,当然也可以手动去数据库中创建表

    说明3:我们写好的这个model类暂时还没有使用呢 。

六、创建测试文件

  在项目根目录下或者你需要的地方创建一个test.py文件,内容如下:

  这时我们在test.py中就只引入mysql_db和TestModel,其他的先不写,然后使用python test.py运行该脚本,就会发现我们的model模型,已经同步到数据库中了

七、添加测试数据  

7.1 单条添加数据

    修改test.py文件如下,然后python test.py执行

    执行之后,我们去数据库查看结果如下:    

    说明1:create_time,update_time,is_delete都是有默认值的字段,如果不设置,会自动显示默认值。

    说明2:money字段总长度时9位,但是可以少于9位,不能多于9位,小数部位不足时补0

7.2 批量添加数据

    再来演示一下批量增加数据,代码如下还是在test.py中

    执行后的结果如下:

八、修改删除

8.1 修改

    刚才已经演示了增加数据的代码,下面我们看一下修改,代码如下,还是在test.py文件中

    查看一下数据库

8.2 删除

    可以看到姓名和性别已经修改成功。再来测试一下删除数据

    可以看出,数据库中已经没有id=1的数据了

九、查询

  在进行查询测试之前,先往数据库中添加一下测试数据

9.1 query关键字

    在做查询的时候我们通常query关键字,它类似于SQL中select 关键字,query参数通常可以填写三类参数

    查看一下打印结果

    说明1:在做查询的时候 .first() 表示查询第一个满足条件的数据

    说明2:在做查询的时候 .all() 表示查询所有数据

    说明3:如果不是查询全部字段,只查询部分字段或者聚合函数的话,结果返回的是一个元组,通过下标取数据即可

9.2 filter关键字

    过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法实现,常用的方法有

    打印结果如下:

9.3分页查询

    方式1:使用limit+offset实现

    查询结果为:

    方式2:使用slice

    输出结果为:

十、排序

  输出结果为:

侯哥语录:我曾经是一个职业教育者,现在是一个自由开发者。我希望我的分享可以和更多人一起进步。分享一段我喜欢的话给大家:"我所理解的自由不是想干什么就干什么,而是想不干什么就不干什么。当你还没有能力说不得时候,就努力让自己变得强大,拥有说不得权利。"

到此这篇关于SQLAlchemy详解的文章就介绍到这了,更多相关SQLAlchemy详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文