python orm框架有哪些,python orm框架选择

  python orm框架有哪些,python orm框架选择

  本文主要介绍利用Python描述符,利用数据库实现ORM模型。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  00-1010 1.__set__方法:设置属性2。__get__方法:访问属性3。__delete__方法:删除属性4。描述符实现ORM模型:汇总访问或修改描述符对象属性时不能触发__setattr__等方法,只会触发描述符类内的_ _ set。

  ORM模型:类名对应表名,数据行对应对象,class属性对应数据行的每个字段。如果有几个表字段,就绑定几个类属性;向表中添加数据就是创建对象,每创建一个对象就是添加一行数据记录。

  ORM框架的功能:

  1.建立模型类和表之间的对应关系,允许我们以面向对象的方式操作数据库。

  2.根据设计的模型类在数据库中生成表格。

  3.数据库可以通过方便的配置进行切换。

  MySql的常用数据类型:

  1.整数:int,bit

  2.Decimal: decimal(decimal表示浮点数,decimal(5,2)表示总共5位数,有2个小数位)

  3.String: varchar(可变长度),char(恒定长度)

  4.日期和时间:日期、时间、日期时间

  5.枚举类型:枚举

  模型类案例:

  django的ORM模型字段

  BooleanField:布尔字段,真或假

  CharField(max_length=最大长度):字符串,参数max_length表示最大字符数。

  IntegerField:整数

  类测试报告(基本表):

  肉类:级

  Verbose_name=测试报告

  db_table=TestReport

  report_name=模型。CharField(max_length=40,null=False)

  start_at=型号。CharField(max_length=40,null=True)

  状态=模型。布尔字段()

  测试运行=模型。IntegerField()

  成功=模式。IntegerField()

  报告=模型。文本字段()

  

目录

 

  只要3360出现在一个班级里

  __get__(自身,实例,所有者)

  __set__(自身,实例,值)

  __delete__(自身,实例)

  __set_name__(自己,所有者,姓名)

  这门课不是普通的课,

  应该叫做:

  描述符类(应用于ORM模型)

  类字段(对象):

  只要下列任一方法出现在一个类中,这个类就是一个描述符类

  def __get__(自身,实例,所有者):

  及格

  def __set__(自身,实例,值):

  打印(“触发了设置方法”)

  def __delete__(自身,实例):

  及格

  班级模型(对象):

  Attr=Field() # attr是描述符对象,修改时不能触发__setattr__等方法,

  #只能触发描述符类中的__set__方法

  if __name__==__main__:

  m=型号()

  尝试修改attr属性。

  打印(m.attr)

  #输出:

  已触发- set -方法。

  没有人

  类别字段

  d(object):

   """

   只要一个类中出现了以下任意一个方法,这个类就是一个描述器类

   """

   def __get__(self, instance, owner):

   pass

   def __set__(self, instance, value):

   """

   :param instance: 修改的对象

   :param value: 修改的值

   :return:

   """

   print(---set---方法被触发了)

   self.value = value

   print(self) # <__main__.Field object at 0x7fecc01f8a30>

   print(instance) # <__main__.Model object at 0x7fecc01f8a00>

   print(value) # 666

   def __delete__(self, instance):

   pass

  class Model(object):

   attr = Field() # attr是一个描述器对象,修改时无法触发__setattr__等方法,

   # 只能触发描述器类内部的__set__方法

  if __name__ == __main__:

   m = Model()

   print(m) # <__main__.Model object at 0x7fecc01f8a00>,与instance相同

   m.attr = 666 # 尝试修改attr属性

  

  

 

  

2.__get__方法:访问属性

 

  

  """  只要一个类中出现了:   __get__(self,instance,owner)   __set__(self,instance,value)   __delete__(self,instance)   __set_name__(self,owner,name)   中的任意一个方法,这个类就不是一个普通的类了,   应被称为:   描述器类(应用在ORM模型中)  """  class Field(object):   """   只要一个类中出现了以下任意一个方法,这个类就是一个描述器类   """   def __get__(self, instance, owner):   print(---get---方法被触发了)   def __set__(self, instance, value):   """   :param instance: 修改的对象   :param value: 修改的值   :return:   """   print(---set---方法被触发了)   self.value = value   def __delete__(self, instance):   pass  class Model(object):   attr = Field() # attr是一个描述器对象,修改时无法触发__setattr__等方法,   # 只能触发描述器类内部的__set__方法  if __name__ == __main__:   m = Model()   m.attr = 666 # 尝试修改attr属性   print(m.attr)   # 输出:   ---set - --方法被触发了   ---get - --方法被触发了   None  

 

  

"""

 

  

 

  

3.__delete__方法:删除属性

 

  

"""

 

  

"""

 

  

 

  

4.描述器实现ORM模型:

 

  

"""

 

  

 

  

总结

 

  本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT软件开发工作室的更多内容!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: