Discuss / Python / 理解ORM

理解ORM

Topic source

Tiko_T

#1 Created at ... [Delete] [Delete and Lock User]

理解是挺好理解的,但自己写肯定写不出来

其实就两点需要注意。

  1. ·ModelMetaClass.__new__`中将所有类属性中类型是`Field`的删掉了转而将其保存到一个`__mappings__`字典属性中。这样取表中每一列名称就直接遍历这个字典取了。
  2. `Model`从`dict`派生,将关键字参数定义的所有属性放进了字典中,重写了`__getattr__`和`__setattr__`再从字典中取,就支持了使用`[attr]`这样获取属性的方式。

总结来说就是将属性放字典,取得时候用遍历放基类里面做,而不用知道每一个属性的名称,子类只需要专心定义好属性就行了。


  • 1

Reply