python中使用ORM操作数据库——创建关联表

一、orm介绍:
全程;Object Relational Mapping 对象关系映射
将python中的类映射为数据库中的表,一个类就是一张表,类的属性映射为表的字段,将python代码翻译为对应的sql语句。

1、优点:

(1)、 降低耦合
(2)、开发人员只需要关注业务逻辑,降低开发人员的开发难度

2、缺点“

(1)、降低查询效率
(2)、受orm方法限制,复杂查询不容易编写

3、安装
python中的orm,即SQLalchemy,仿照的是Django框架中的ORM
先要安装pymysql,因为它是基于pymysql库的:
在命令行执行:
pip install PyMySQL
pip install sqlalchemy

注: 如果pip命令不好用 说明没有配置环境变量 请将python目录中的script的路径放到环境变量path中

timeout错误可以尝试下用这样的pip命令:
python中使用ORM操作数据库——创建关联表
这里提示的我是已经安装过,没有安装过的请参照以上命令

如果在命令行中安装了SQLalchemy库,但是pycharm中不显示,请进行以下操作;
python中使用ORM操作数据库——创建关联表
python中使用ORM操作数据库——创建关联表
python中使用ORM操作数据库——创建关联表
python中使用ORM操作数据库——创建关联表
这样就会看到你刚在命令行里安装的两个库啦

话不多说,直接上代码:
1、导入模块
python中使用ORM操作数据库——创建关联表
2、创建与数据库的连接:
python中使用ORM操作数据库——创建关联表

这里的“mysql://scott:[email protected]/dbname” ,是在create_engine方法内有解释,按住CTRL+鼠标左键就可以进去查看
python中使用ORM操作数据库——创建关联表
找到mysql开头的url:
scott :你的数据名字,没改过的话,都是root
tiger:数据库密码
hostname:ip地址
dbname:数据库名字

这里我用的是连接本地的数据库:

db = sqlalchemy.create_engine(“mysql://root:[email protected]/1708a”)

3、创建基类:
python中使用ORM操作数据库——创建关联表
放入的db参数为刚做好连接的数据库,将返回值传给base,用于创表

4、添加主表与关联表类:

python中使用ORM操作数据库——创建关联表
需要注意的是,在这里的关联主表,只能使用Integer的方式

5、创建表:
python中使用ORM操作数据库——创建关联表
在main函数中,用基类.metadata中的.create_all()的方式创建继承所有基类的表

6、运行代码,查看数据库中的结果:
python中使用ORM操作数据库——创建关联表
运行后:
python中使用ORM操作数据库——创建关联表

总结:
优点:
1、操作便捷,比常规的python连接mysql的方式更好用些(pymysql模块)
2、作为一个编程人员,使用orm编写起来更加的敏捷,符合编程人员的思想
3、内置有封装的,便于增删改查操作的模块 :
会类模块–sqlalchemy.orm下的sessionmaker类方法
4、作为主表的关联表,在数据库中,只有在删除完关联表后才可以删除主表
5、使用orm模式,不需要关闭游标和数据库
6、不需要记住像mysql那样的sql语句,如果只是要做简单的操作,orm是首选
7、在重复创建表后,他不会将原先的表内数据覆盖,而是什么都不做

缺点:
1、主表与关联表的关联只允许使用Integer方式,不识别String关联
2、需要一定的python基础,要理解类、继承等关系

本文来自自动化测试群:762141168,如果有什么不对的地方,欢迎来探讨。
下篇为大家讲解orm操作之增删改查