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命令:
在这里插入图片描述
这里提示的我是已经安装过,没有安装过的请参照以上命令

如果在命令行中安装了SQLalchemy库,但是pycharm中不显示,请进行以下操作;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就会看到你刚在命令行里安装的两个库啦

话不多说,直接上代码:
1、导入模块
在这里插入图片描述
2、创建与数据库的连接:
在这里插入图片描述

这里的“mysql://scott:tiger@hostname/dbname” ,是在create_engine方法内有解释,按住CTRL+鼠标左键就可以进去查看
在这里插入图片描述
找到mysql开头的url:
scott :你的数据名字,没改过的话,都是root
tiger:数据库密码
hostname:ip地址
dbname:数据库名字

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

db = sqlalchemy.create_engine(“mysql://root:12345678@localhost/1708a”)

3、创建基类:
在这里插入图片描述
放入的db参数为刚做好连接的数据库,将返回值传给base,用于创表

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

在这里插入图片描述
需要注意的是,在这里的关联主表,只能使用Integer的方式

5、创建表:
在这里插入图片描述
在main函数中,用基类.metadata中的.create_all()的方式创建继承所有基类的表

6、运行代码,查看数据库中的结果:
在这里插入图片描述
运行后:
在这里插入图片描述

总结:
优点:
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操作之增删改查

发布了10 篇原创文章 · 获赞 13 · 访问量 402

猜你喜欢

转载自blog.csdn.net/weixin_46457203/article/details/104940540