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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。