什么是ORM,为什么要实现ORM
大家先看看这边文章,link
看了这边文章后,想必知道了搭建ORM在开发中的重要性
那么ORM具体是怎么实现的呢 如何不写sql语句,就可以创建数据库,以及数据表,再插入数据
用python来简单地写下
平常做Django开发的时候,我们在创建一个模型,其实也就是在创建一个数据库(???)
from django.db import models
# Create your models here.
class Data(models.Model):
username = models.CharField(max_length=64)
password = models.CharField(max_length=64)
email = models.CharField(max_length=64)
那么Django里面他是如何实现ORM的呢???(很复杂)
接下来就简单写下这个代码
首先要对元类有所了解
class User():
uid = ("uid", "int ansigned")
name = ("name", "varchar(30)")
emial = ("emial", "varchar(30)")
password = ("password", "varchar(30)")
如何将 创建好的这些个字段变成sql语句然后写入到数据库
这里就要用到元类
首先让User类先继承一个元类
class ModelMetaclass(type):
def __new__(cls, name, bases, attrs):
"""
:param name: 类名
:param bases: 继承父类的名字
:param attrs: 传递的类属性
:return:
"""
mappings = dict()
for k, v in attrs.items():
if isinstance(v, tuple): # 判断attr是不是都是元组类型的
print("Found mapping: %s ==> %s" % (k, v))
mappings