參考資料[1]
一纬傲、常用字段
from django.db import models
1立轧、測試學(xué)習(xí)用
models.AutoField() #自增長字段,默認Int值
models.BigAutoField()
2锡移、二進制數(shù)據(jù)
models.BinaryField()
3女阀、布爾型
models.BooleanField()
models.NullBooleanField()
4译打、整型
models.PositiveSmallIntegerField() #5個字節(jié)
models.SmallIntegerField() #6個字節(jié)
models.PositiveIntegerField() #10個字節(jié)
models.IntegerField() #11個字節(jié)
models.BigIntegerField() #20個字節(jié)
5智哀、字符串類型
models.CharField() #varchar
model.TextField() #longtext
6、時間日期類型
models.DateField() #年月日
models.DateTimeField() #年月日時分秒
models.DurationField() #int, Python timedelta實現(xiàn)
7贸呢、浮點型
models.FloatField()
models.DecimalField()
8镰烧、其他字段
models.EmailField() #郵箱
models.ImageField()
models.FileField()
models.FilePathField()
models.URLField()
models.UUIDField()
models.GenericIPAddressField()
二、字段參數(shù)
1楞陷、所有字段都有的參數(shù)
db_column="xxx" #修改字段的名字為xxx
primary_key=True #設(shè)置主鍵
verbose_name="11個字節(jié)大小" #設(shè)置字段的別名備注
unique=True #該字段的數(shù)據(jù)在表中唯一
null=True, blank=True #null是對數(shù)據(jù)庫來說允許為空怔鳖,blank是表單提交時允許為空
db_index=True #給字段設(shè)置索引
help_text="這個是Longtext" #在表單中顯示幫助信息
editable=False #用戶不能對字段的內(nèi)容進行編寫
2、個別字段才有的參數(shù)
models.CharField(max_length=100) #utf8編碼的100個字符串
models.DateField(unique_for_date=True固蛾,auto_now=True) #表示這個字段的日期必須為1,更新當前記錄的時間
models.DateTimeField(unique_for_month=True结执, auto_now_add=True) #表示這個字段的月份必須為1,增加記錄時的當前時間
models.DecimalField(max_digits=4, decimal_places=2) #共有4位,小數(shù)點后2位
3艾凯、關(guān)系型字段的參數(shù)
related_name="one" #用于外鍵關(guān)聯(lián)中的反向查詢献幔,通過父表查詢子表
on_delete=models.CASCADE #表示當外鍵關(guān)聯(lián)的對象被刪除的時候,要進行的操作趾诗,共有6種操作
models.CASCADE:刪除級聯(lián)
models.PROTECT:當被關(guān)聯(lián)的數(shù)據(jù)被刪除時蜡感,就會報ProtectedError異常
models.SET_NULL:刪除置空,只有當該字段設(shè)置了null=True時恃泪,方可使用該值
models.SET_DEFAULT:父表的數(shù)據(jù)被刪除郑兴,給子表的外鍵設(shè)置一個默認值
models.DO_NOTHING:父表的數(shù)據(jù)被刪除,子表什么都不做
models.SET():
參考資料:
[1] https://www.imooc.com/video/18454
[2] 更多https://docs.djangoproject.com/en/dev/ref/models/fields/#field-types