Django ORM常用字段類型

在設計模型類時,字段類型的選擇至關重要,對項目的開發,甚至性能都會有影響。下面我列舉出了在Django中,設計模型類時常用的字段類型,以對應MySQL爲例。

自增類型

AutoField   能存儲11個字節的整數,對應MySQL中的int(11),自增主鍵,Django是默認提供該字段的。

二進制類型

BinaryField   可存入二進制數據。

布爾類型

BooleanField   能存儲1個字節的整數(0:False,1:True),對應MySQL中的tinyint(1)

整型

PositiveSmallIntegerField   能存儲5個字節的正整數。

SmallIntegerField   能存儲6個字節的整數。

PositiveIntegerField  能存儲10個字節的正整數。

IntegerField   能存儲11個字節的整數。

BigIntegerField   能存儲20個字節的整數。

字符型

CharField   對應MySQL中的varchar,需要用max_length參數來指定長度。

TextField   對應MySQL中的longtext。

日期時間類型

DateField   對應MySQL中的date

DateTimeField   對應MySQL中的datetime

TimeField   對應MySQL中的time

浮點型

FloatField

DecimalField

DecimalField相比於FloatField更加精確。

關係類型

ForeignKey   外鍵關聯,實現一對多。

OneToOneField   外鍵關聯,實現一對一,繼承自ForeignKey,其實就是添加了一個唯一索引unique。

ManyToManyField   外鍵關聯,實現多對多,本質上其實是創建了一張中間表來實現多對多的關聯。

其他類型

EmailField   繼承自CharField,實現了對email的特殊處理。

FileField   繼承自CharField,實現了對文件的特殊處理。

ImageField   繼承自FileField,用來處理圖片。

URLField   繼承自CharField,實現了對URL的特殊處理。

UUIDField   對應MySQL中的char(32),用來存放生成的唯一id。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章