python如何实现一个ORM

  介绍

这篇文章给大家分享的是有关python如何实现一个ORM的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

python有哪些常用库

python常用的库:1. requesuts; 2. scrapy; 3.枕头;4.扭曲;5. numpy; 6. matplotlib; 7. pygama; 8. ipyhton等。

<强> 1,定义类领域,它负责保存数据库表的字段名和字段的类型:

 class 字段(对象):
  ,,,def  __init__(自我,,名字,,column_type):
  ,,,,,,,self.name =,名字
  ,,,,,,,self.column_type =, column_type 

<强> 2,在领域的基础上,进一步定义各种具体类型的字段中,强比如StringField, IntegerField等等:

 class  StringField(领域):
  ,,,def  __init__(自我,,名字,,max_length):
  ,,,,,,,超级(StringField,,自我). __init__(名字,,& # 39;varchar (% d) & # 39;, %, max_length)
  ,
  class  IntegerField(领域):
  ,,,def  __init__(自我,,名字):
  ,,,,,,,超级(IntegerField,,自我). __init__(名字,,& # 39;int # 39;) 

<强> 3,下一步,就是编写最复杂的ModelMetaclass了:

 class  ModelMetaclass(类型):
  ,,,def  __new__ (cls,,名字,,基地,,attrs):
  ,,,,,,,if  name ==, & # 39;模型# 39;:
  ,,,,,,,,,,,return  type.__new__ (cls、,名称,基地,,attrs)
  ,,,,,,,印刷(& # 39;Found 模型:,% & # 39;,%,名称)
  ,,,,,,,mappings =, dict类型()
  ,,,,,,,for  k, v 拷贝attrs.items ():
  ,,,,,,,,,,,if  isinstance (v),字段):
  ,,,,,,,,,,,,,,,映射[k],=, v
  ,,,,,,,for  k 拷贝mappings.keys ():
  ,,,,,,,,,,,attrs.pop (k)
  ,,,,,,,attrs [& # 39; __mappings__& # 39;],=,映射
  ,,,,,,,attrs [& # 39; __table__& # 39;],=,名字
  ,,,,,,,return  type.__new__ (cls、,名称,基地,,attrs) 

<强> 4,创建用户类,并调用保存方法,保存:

 class 用户(模型):
  ,,,id =, IntegerField (& # 39; id # 39;)
  ,,,name =, StringField(& # 39;用户名# 39;,,max_length=48)
  ,,,email =, StringField(& # 39;电子邮件# 39;,,max_length=128)
  ,,,password =, StringField(& # 39;密码# 39;,,max_length=24)
  ,
  #,创建一个实例:
  时间=u 用户(id=12345, name=& # 39;小明# 39;,,邮件=& # 39;xiaoming@xiaomi.com& # 39;,,密码=& # 39;测试# 39;)
  #,保存到数据库:
  u.save () 

感谢各位的阅读!关于“python如何实现一个ORM”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

python如何实现一个ORM