1:一个模型类对应一个表,模型类中的属性对应表中的一个字段
2:字段类型(数据库支持的类型)python
1:CharField(Maxlength=长度)
models.CharFieldgit
2:TextFiled 大文本数据库
3:IntegerField 整数django
4:DecimalField(max_digits=None,decimal_places=None) 小数
max_digits 位数总数 decimal_places 小数点后的位数code
5:FloatField 小数对象
6:BooleanField true/false字段继承
7:DateField([auto_now=False,auto_now_add=False]) 日期
参数 auto_now:表示每次保存对象时,自动设置该字段为当前时间
auto_now_add:表示当对象第一次被建立时,设置该字段为当前时间
这两个参数互斥
8:TimeField 时间 参数同上接口
9:DateTimeField 日期加时间 参数同上ci
10:FileField 一个上传文件你的字段字符串
11:ImageField 继承了FileField的全部属性和方法,对上传的对象进行确认,确保是一个image
1:null 默认False 若为true 则以null存入数据库
2:blanke True则容许空值
3:db_column 命名数据库列名称,不设置默认模型里的属性名
4:primary_key 主键
5:unique 若为true 则这个字段在表中有惟一值
manage 的一个对象,做用是与数据库进行交互
例:Students.objects.get(pk=1) 获取id为1的学生,能够进行增删改查
当定义模型类时没有定义管理器,系统自动定义一个名叫objects的管理器
例:
class grades(models.Model): stuobj=gradesManager() gname=models.CharField(max_length=20) def __str__(self): return self.gname
在Students模型类中加入:
stuobj=models.Manager()#设定一个名叫obj的管理器
在之后这个类的访问中,能够使用Students.obj.get()或者all()等方法
自定义后,objects就不能再使用了
模型管理器是django的模型与数据库进行数据交互的接口,一个模型类能够有多个管理器
用处:
1:能够添加额外的方法(即除get(),all())
2:修改管理器返回的查询集合(过滤)->重写get.queryset()方法
例:
class gradesManager(models.Manager): def get_queryset(self): return super(gradesManager,self).get_queryset().filter(id=1)
此处重写的get_queryset()方法,筛选出id=1的信息 固然使用的时候要用stuobj()进行操做 2:建立对象