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
Metaclasses的更多相关文章
- Understanding Python metaclasses
转载:https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses/ None of the existing article ...
- Python type类具体的三大分类:metaclasses,classes,instance
Python type类视角中的对象体系需要我们不断的学习,其中我们使用的时候需要注意.下面我们就看看如何才能更好的运用Python type类.下面的文章希望大家有所收获. 在单纯的Python t ...
- python类:描述器Descriptors和元类MetaClasses
http://blog.csdn.net/pipisorry/article/details/50444769 描述器(Descriptors) 描述器决定了对象属性是如何被访问的.描述器的作用是定制 ...
- Python高级特性(3): Classes和Metaclasses(转)
原文:Python高级特性(3): Classes和Metaclasses 类和对象 类和函数一样都是Python中的对象.当一个类定义完成之后,Python将创建一个“类对象”并将其赋值给一个同名变 ...
- Python metaclasses
metaclasses元类:就像对象是类的实例一样,类是它的元类的实例.调用元类可以创建类. metaclass使用type来创建类,type可以被继承生成新的元类. 这个和C#的反射很相似. 下面是 ...
- Classes and metaclasses
http://www.sealiesoftware.com/blog/archive/2009/04/14/objc_explain_Classes_and_metaclasses.html Obje ...
- Python 元类 - Metaclasses
Python 元类 - Metaclasses 默认情况下儿, classes 是有 type() 构造的. 类的结构体在一个新的 namespace 被执行, 类的名字 class name 绑定( ...
- Python——五分钟理解元类(metaclasses)
“元类的魔幻变化比 99% 的用户所担心的更多,当你搞不懂是否真的需要用它的时候,就是不需要.” —Tim Peters 本文源于在 PyCon UK 2008 上的一个快速演讲. 元类被称为 Pyt ...
- 成为OpenStack工程师
OpenStack Hacker 态度:开放.主动.沟通 影响力:能说.能写.能分享 四化:自动化.流程化.系统化.文档化 0级 掌握一些基本技能:python.c.linux.git.unittes ...
随机推荐
- 20175224 2018-2019-2 《Java程序设计》第四周学习总结
教材学习内容总结 子类的定义 class 子类名 extends 父类名 { ... } 子类继承性 子类继承父类的成员变量.方法.成员变量可以被子类中自己定义的任何实例方法操作:继承的方法可以被子类 ...
- java知识点总结--java开发环境搭建
安装 JDK(Java Development Kit) 和开发工具 如:eclipse,myeclipse,idea等 配置系统环境变量 查看系统环境变量 1.通过 我的电脑--->“属性”- ...
- JavaScript 之默认行为 DOM2级,事件委托机制
1. 事件默认行为及阻止方式 1.1 浏览器的默认行为 JavaScript事件本身所具有的属性,例如a标签的跳转,Submit按钮的提交,右键菜单,文本框的输入等. 1.2 ...
- [RESTful] 项目设计实践
有以下的项目需求 用户登录.注册 文章发表.编辑.管理.列表 一.资源路径 /users./articles 二.HTTP动词 GET.POST.DELETE.PUT 三.过滤信息 文章的分页筛选 四 ...
- openmv扫码通信
import sensor, image, time import json from pyb import UART sensor.reset() # 初始化相机传感器 sensor.set_pix ...
- mongo常用sql
基本查询 db.getCollection('chdr').find({chdrnum:"test123456"}) lookup关联查询 db.getCollection ( ...
- wpf binging (六)多绑定
场景 比如我用四个textbox 需要每个控件都输入正确的数据以后 下方的 button才变成可用状态 需要把四个textbox的值转换成 true或者false 效果
- 删除csdn上面自己上传的资源
今天想删掉以前的资源,才发现CSDN并没有提供删除资源的功能,然后去网上搜了下,这才删除了,不知道怎么删除的小伙伴看过来~ 首先,找到自己要删除资源的页面,举个栗子 https://download. ...
- JDK8.0接口中的默认方法和静态方法
我们在接口中通常定义的方法是抽象方法,即没有方法体,只有返回值类型和方法名:(public abstract) void Method(); 类在实现接口的时候必须重写抽象方法才可以 jdk8中新加的 ...
- SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关
0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...