Django-model

2017-08-07  本文已影响0人  肥肥米怡

DRY
对于不同数据源都应该独立存在,减少冗余的数据。

model就是你唯一可信的真实数据源。它包含了你所要存储数据的必须字段和行为信息。Django遵循DRY 目的是让你可以在一个地方定义你的数据模型,并以它来驱动整个项目
简单来说就是本地数据

from django.db import models
class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
class Choice(models.Model):
    question = models.ForeignKey(Question)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

上面的代码表明了每一个类都是继承models.Model,每一个类都有数个对应数据库字段的类成员变量组成。
每一个类成员变量中必选参数和可选参数,

可选参数
方法名 具体用法
default 默认参数
primary_key 主键,默认是递增数字
max_length 允许的最大长度
unique 默认是false。唯一值
choices 它是一个可迭代的二元组(例如,列表或是元组),用来给字段提供选择项。
blank 默认false,可以为空
model子类的方法(部分)
方法名 具体用法
AutoField 必须设置为主键的field才能设置,int类型。产生一个自增的主键,一个model中不能超过1个值
BigAutoField 自增长的数据为8字节空间
BigIntegerField 返回8字节的整型类型
BinaryField 二进制类型
BooleanField 布尔型和NullBooleanField有区别,true/false,本类型不允许出现null
CharField 定长的字符串类型,一般创建时写入max_length
CommaSeparatedIntegerField 逗号分隔的整数,考虑到数据库的移植性,max_length参数应该必选
DateField 对应Python的datetime.date,额外的参数:DateField.auto_now表示是否每次修改时改变时间,DateField.auto_now_add 表示是否创建时表示时间,一般来说数据库重要的表都要有这样的字段记录创建字段时间个最后一次改变的时间。
TextField 不定长的字符串类型
上一篇 下一篇

猜你喜欢

热点阅读