当前位置: 首页 > 网络应用技术

使用SQL超级方便的Python伪像

时间:2023-03-06 13:46:04 网络应用技术

  实际上,起初使用了pymysql,但是发现维护更加麻烦,并且仍然有代码注入的风险,因此我只是使用了ORM框架。

  ORM是对象关系映射器,可以简单地理解为数据库表和Python类之间的映射。通过操作Python类,可以间接操作数据库。

  Python的ORM框架以Sqlalchemy和Peewee而闻名。我在这里没有比较它,而只需解释一些个人使用Sqlalchemy,希望能帮助朋友。

  初始化工作

  通常,ORM框架具有一些初始化工作,例如数据库连接,定义基本映射等。

  以MySQL为例,创建数据库连接只需要传递到DSN字符串中。在它们之后,Echo指示是否输出相应的SQL语句,这对调试更有帮助。

  个人设计

  对我个人而言,在介绍ORM框架时,我的项目将参考以下设计的MVC模式。在它们的情况下,该模型存储了一些数据库模型,即由数据库表映射的Python类;Model_op存储与每个模型相对应的操作,也就是说,添加删除以检查和修改;层不需要关心模型层即可实现分离。

  地图声明(模型简介)

  如果我们有这样的测试桌,请拿栗子

  在ORM框架中,映射的结果是下面的Python类

  第一的

  我们可以看到pyormmodel继承了基类。该课程是Sqlalchemy提供的基类。它将检查我们声明的Python课程。我把它放在base_model中。

  第二

  每个Python类都必须包含__TableEname__属性,否则找不到相应的表。

  第三

  创建数据表有两种方法。第一个当然是在MySQL中手动创建的。只要您的Python类定义没有问题,就可以正常操作;第二个是通过ORM框架创建的,例如以下

  创建效果:

  第四

  关于字段属性

  1. primary_key和自动启动是更好的理解,即MySQL的主要和增量属性。

  2.如果它是int类型,则不需要指定长度,如果它是varchar类型,则必须指定它。

  3. mysql中的null和null对应

  4.关于默认值和server_default:默认值表示ORM框架级别的默认值,也就是说,如果未分配字段,则将使用我们定义的默认值;server_default表示数据库级别的默认值,即DDL SpectionDefault关键字。

  会话简介

  SQLalchemy文档中提到,数据库的添加和删除是通过会话执行的。

  如上所述,我们可以看到,对于每个操作,我们都需要获取,提交和释放。这太多余和麻烦了,因此我们通常执行一层包装。

  1.使用上下文管理器的方法

  治疗会议和结束的异常,这部分几乎与参考文章一致。

  2.模型和dict转换

  将两种方法添加到pyormmodel,以在模型和dict之间转换

  3.数据库操作安装

  与参考文章不同,我直接致电会话,因此指挥官无需注意模型层并减少耦合。

  4. CIMC

  以上是该共享的所有内容。如果您想了解更多信息,请转到公共帐户:Python编程学习圈,每日干货共享

  原始:https://juejin.cn/post/7096683234573942792