Metaclasses

1、Metaclasses

Metaclasses是创建class(对象)的东西,它们是描述类的类,我们经常使用所理解的对象和class以及Metaclasses可以理解成以下形式:

MyClass = MetaClass()
MyObject = MyClass()

2、django模型类中的内部类meta

django模型类中的meta是一个内部类,它用于定义一些模型类的行为特征,用于设置类的元信息

定义方式如下:

class Student(models.Model):

    ...... #模型类的属性相关定义
class Meta:
...... # Meta类的属性

3、Meta类的部分属性

(1)abstract

abstract属性定义当前的模型类是否为一个抽象类,在django模型类中一个类对应一张数据库表,而模型类中定义Meta类的abstract属性为True时,当前模型类即为一个抽象类,抽象类不会有数据库表,一般用它来归纳一些公共属性字段,继承该类的子类能够继承这些字段

class Student(models.Model):

    ...... #模型类的属性相关定义
class Meta:
abstract=True

(2)db_table

db_table指明该模型类对应的数据库表的名字,默认为应用名小写_类名小写

class Student(models.Model):

    ...... #模型类的属性相关定义
class Meta:
db_table='student'

(3)ordering

对象的默认排序字段

class Student(models.Model):

    ...... #模型类的属性相关定义
class Meta:
ordering=["id"] #按id升序
ordering=["-id"] #按id降序

注意:排序会增加数据库的开销,相当于添加了order by

上一篇:MySQL创建用户的三种方法 (并授权)转


下一篇:11、WebView 使用总结