ORM 的映射与反射

ORM (Object Relational Mapping)作为一个后端框架的构建的组成部分, 主要实现对象对关系型数据库的映射关系。可以无需再去编写原生sql,取代代之的是基于面向对象的思想去编写类、对象、调用相应的方法等,ORM会将其转换/映射成原生SQL然后交给pymysql执行的。

orm的通常使用顺序是, 先编写model 然后通过model 生成迁移文件 “migrations” 再通过migrations 生成对应的数据表。数据表的字段条目与model 的属性可以做到一一对应。 这就通常呈现在大众面前的orm功能。

但作为一个合格的orm产品, 如果只是正向的通过 object  向 relational 映射,使用就会受到局限, 不可能在每一次对数据库的操作都有所对应的model存在。在此情况下, 就可以引入反射的概念, 即反向映射, 走relational -> object 的方式。

在python 的语言环境下, 常用的orm 产品的反射体现:

1. django orm 小编并未找到django 框架下的orm的动态反射方式, 但可以参考 inspectdb 来完成通过数据库反射出class来实现。

2. sqlalchemy 中, 提供Automap 来完成动态的反射。

        传送门:Automap — SQLAlchemy 1.4 Documentation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值