您好,登錄后才能下訂單哦!
小編給大家分享一下Django ORM常用字段與不常用字段有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
常用字段
AutoField:
int 自增列,必須填入參數 primary_key=True
如果沒有寫 AutoField,則會自動創建一個列名為 id 的列
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主鍵
CharField:
字符類型,必須提供 max_length 參數, max_length 表示最大字符長度
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主鍵 name = models.CharField(max_length=32)
IntegerField:
整數類型,范圍在 -2147483648 到 2147483647
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主鍵 name = models.CharField(max_length=32) age = models.IntegerField()
DateField:
日期字段,日期格式 YYYY-MM-DD,相當于 Python 中的 datetime.date()
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主鍵 name = models.CharField(max_length=32) age = models.IntegerField() birthday = models.DateField(auto_now_add=True)
DatetimeField、DateField、TimeField 這三個時間字段,都可設置 auto_now_add、auto_now 屬性
auto_now_add=True 的話,創建數據記錄的時候會把當前時間賦給該字段
auto_now=True 的話,每次更新數據記錄的時間會用來更新該字段
DateTimeField:
日期時間字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相當于 Python 中的 datetime.datetime()
執行命令:
manage.py@mysite2 > makemigrations app01 manage.py@mysite2 > migrate app01
去數據庫中看一下
添加數據
只添加 name、age 字段
DateField 是添加這條數據的日期
不常用字段
BigAutoField(AutoField):
bigint 自增列,必須填入參數 primary_key=True
如果沒有寫自增列,則會自動創建一個列名為 id 的列
SmallIntegerField(IntegerField):
短整型,-32768 到 32767
PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正短整型,0 到 32767
IntegerField(Field):
有符號的整數列,-2147483648 到 2147483647
PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正整數,0 到 2147483647
BigIntegerField(IntegerField):
有符號的長整型,-9223372036854775808 到 9223372036854775807
BooleanField(Field):
布爾值類型
NullBooleanField(Field):
可以為空的布爾值
TextField(Field):
文本類型
EmailField(CharField):
字符串類型,Django Admin 以及 ModelForm 中提供驗證機制
IPAddressField(Field):
字符串類型,Django Admin 以及 ModelForm 中提供驗證 IPV4 機制
GenericIPAddressField(Field):
字符串類型,Django Admin 以及 ModelForm 中提供驗證 Ipv4 和 Ipv6
參數:protocol,用于指定 Ipv4 或 Ipv6, 'both',"ipv4","ipv6";unpack_ipv4,如果指定為 True,則輸入 ::ffff:192.0.2.1 的時候,可解析為 192.0.2.1,開啟此功能,需要 protocol="both"
URLField(CharField):
字符串類型,Django Admin 以及 ModelForm 中提供驗證 URL
SlugField(CharField):
字符串類型,Django Admin 以及 ModelForm 中提供驗證支持 字母、數字、下劃線、連接符(減號)
CommaSeparatedIntegerField(CharField):
字符串類型,格式必須為逗號分割的數字
UUIDField(Field):
字符串類型,Django Admin 以及 ModelForm 中提供對 UUID 格式的驗證
TimeField(DateTimeCheckMixin, Field):
時間格式,HH:MM[:ss[.uuuuuu]]
DurationField(Field):
長整數,時間間隔,數據庫中按照 bigint 存儲,ORM 中獲取的值為 datetime.timedelta 類型
FloatField(Field):
浮點型
DecimalField(Field):
10進制小數
參數:max_digits,小數總長度;decimal_places,小數位長度
BinaryField(Field):
二進制類型
FilePathField(Field):
字符串,Django Admin 以及 ModelForm 中提供讀取文件夾下文件的功能
參數:path,文件夾路徑;match=None,正則匹配;recursive=False,遞歸下面的文件夾;allow_files=True,允許文件;allow_folders=False,允許文件夾
FileField(Field):
字符串,路徑保存在數據庫,文件上傳到指定目錄
參數:upload_to="",上傳文件的保存路徑;storage=None,存儲組件,默認 django.core.files.storage.FileSystemStorage
ImageField(FileField):
字符串,路徑保存在數據庫,文件上傳到指定目錄
參數:upload_to="",上傳文件的保存路徑;storage=None 存儲組件,默認 django.core.files.storage.FileSystemStorage;width_field=None,上傳圖片的高度保存的數據庫字段名(字符串);height_field=None,上傳圖片的寬度保存的數據庫字段名(字符串)
以上是“Django ORM常用字段與不常用字段有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。