ORM:对象*映射*关系 :将Django中的操作转化为对数据库的操作
模型·属性·列表·字段的关系:一个模型类对应一个表,模型类中的属性对应该模型里面的字段
字段类型:浮点类型时用FloatField更加简单
字段选项
关联外键关系
元选项(meta)
from django.db import models
# Create your models here.
class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
def __str__(self):
return "%s-%d-%d" % (self.gname,self.ggirlnum,self.gboynum)
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default=True)
sage = models.IntegerField()
scontend = models.CharField(max_length=20)
isDelete = models.BooleanField(default=False)
sgrade = models.ForeignKey(Grades,on_delete=models.CASCADE)
def __str__(self):
return "%s-%s-%s" % (self.sname,self.scontend,self.sgrade)
lasttime=models.TimeField(auto_now=True)
class Meta: #定义元选项
db_table="students"
ordering=['id']
字段类型
定义Django模型Model的时候,你一定要十分清楚2件事:
-
这个Field是否有必选项, 比如CharField的max_length和ForeignKey的on_delete选项是必须要设置的。
-
这个Field是否必需(blank = True or False),是否可以为空 (null = True or False)。这关系到数据的完整性。
-
ForeignKey定义所需的class定义在前面,要不然会报未定义的错误
字段与选项(必选项为黄色标注) |
CharField() 字符字段
|
TextField() 文本字段
|
DateField() and DateTimeField() 日期与时间字段
|
EmailField() 邮件字段
|
IntegerField(), SlugField(), URLField(),BooleanField()
|
FileField(upload_to=None, max_length=100) - 文件字段
|
ImageField(upload_to=None, height_field=None, width_field=None, max_length=100,)
|
ForeignKey(to, on_delete, **options) - 单对多关系
|
ManyToManyField(to, **options) - 多对多关系
|
字段选项