通過上面的學習,我們知道了Django項目中每一個模型類對應爲數據庫中的一張表,類中沒一個屬性對應爲表中的每一個字段。數據庫的只是告訴我們數據庫在創建表字段時是需要制定表字段的數據類型的,那我們Django可以幫我實現字段數據類型的限制嗎?
答案是YES!!!
我們就通過這一篇文章來了解一下模型類中字段的類型和選項
一、字段類型
Django中通過特定的類,來實現數據庫中字段數據類型的效果,下面我們看看都有哪些類,以及他們實現哪種類型
字段類 | 描述 |
AutoField | 自動增長的IntegerField,通常不用指定,不指定時Django會自動創建屬性名爲id的自動增長屬性 |
BooleanField | 布爾字段,值爲True或False |
NullBooleanField | 支持Null、True、False三種值 |
CharField(max_length=字符長度) | 字符串 |
TextField | 大文本字段,一般超過4000個字符時使用 |
IntegerField | 整數 |
DecimalField(max_digits=None, decimal_places=None) | 十進制浮點數。專門用於記錄金額,max_digits表示總長度,decimal_places表示小數部分長度 |
FloatField | 浮點數 |
DateField[auto_now=False, auto_now_add=False]) |
日期 auto_now表示每次保存對象時,自動設置該字段爲當前時間,用於"最後一次修改"的時間戳,它總是使用當前日期,默認爲false auto_now_add表示當對象第一次被創建時自動設置當前時間,用於創建的時間戳,它總是使用當前日期,默認爲false auto_now_add和auto_now是相互排斥的,組合將會發生錯誤 |
TimeField | 時間,參數同DateField |
DateTimeField | 日期時間,參數同DateField |
FileField | 上傳文件字段 |
ImageField | 繼承於FileField,對上傳的內容進行校驗,確保是有效的圖片 |
二、選項
選項是用來限定該字段應該有哪些特性,其實有點類似於數據庫中的約束,但也僅僅是有點點類似,因爲django提供的選項非常之多
選項名 | 描述 |
null | 如果爲True,表示允許爲空,默認值是False |
blank |
使用bool值True或False,如果設置爲True,表示允許爲空 請注意,這不同於null。 null純粹是與數據庫有關的,而空白是與驗證有關的。 如果字段的空白爲True,則表單驗證將允許輸入一個空值。 如果字段的空白爲False,則需要該字段。 |
db_column | 字段的名稱,如果未制定,則使用屬性的名稱 |
db_index | 數據庫索引,如果設置爲True,將會爲該字段創建索引 |
db_tablespace | 如果此字段已建立索引,則用於該字段的索引的數據庫表空間的名稱。 缺省值是項目的DEFAULT_INDEX_TABLESPACE設置(如果已設置)或模型的db_tablespace(如果有)。 如果後端不支持索引的表空間,則忽略此選項。 |
default | 默認值,可以使一個只或者是一個可調用的對象 |
primary_key | 主鍵,如果設置爲True,該字段將被設置爲模型類的主鍵 |
unique | 如果設置爲True,該字段必須在整個表中保持值唯一,類似於唯一約束,除此以外還有(unique_for_date、unique_for_year、unique_for_month) |
超全面的測試IT技術課程,0元立即加入學習!有需要的朋友戳: