一、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参数解释
- 参数url:SQLAlchemy要连接的数据库地址,其格式为:数据库类型+数据库驱动://数据库用户:数据库密码@数据库地址:端口号/数据库名称?编码方式
- 参数convert_unicode:按照指定的编码方式对字符串进行编码解码
- 参数isolation_level:设置事务的隔离界别
- 参数pool_recycle:设置回收链接的时间,单位毫秒
- 参数pool_pre_ping:每次连接前预先ping一下
- 参数pool_size: 链接池中保持数据库连接的数量,默认是5
- 参数max_overflow :当链接池中的连接数不够用的时候,允许额外再创建的最大链接数量,默认是10
- pool_timeout:排队等数据库链接时的超时时间
五、创建model模型
5.1 SQLAlchemy支持的数据类型
-
- Integer:整形
- String:字符串
- Float:浮点型
- DECIMAL:定点型
- Boolean:bool
- Date:日期类型
- DateTime:日期+时间类型
- Time:时间类型
- Enum:枚举类型
- Text:文本类型
- LongText:长文本类型
5.2 SQLAlchemy字段常用的约束
-
- default:默认值
- nullable:是否可空
- primary_key:是否为主键
- unique:是否唯一
- autoincrement:是否自动增长
- name:该属性在数据库中的映射字段
- default:默认值
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执行

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