Django ORM 常用字段與不常用字段匯總
常用字段
AutoField:
int 自增列,必須填入?yún)?shù) primary_key=True
如果沒(méi)有寫(xiě) AutoField,則會(huì)自動(dòng)創(chuàng)建一個(gè)列名為 id 的列
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主鍵
CharField:
字符類(lèi)型,必須提供 max_length 參數(shù), max_length 表示最大字符長(zhǎng)度
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主鍵 name = models.CharField(max_length=32)
IntegerField:
整數(shù)類(lèi)型,范圍在 -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,相當(dāng)于 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 這三個(gè)時(shí)間字段,都可設(shè)置 auto_now_add、auto_now 屬性
auto_now_add=True 的話(huà),創(chuàng)建數(shù)據(jù)記錄的時(shí)候會(huì)把當(dāng)前時(shí)間賦給該字段
auto_now=True 的話(huà),每次更新數(shù)據(jù)記錄的時(shí)間會(huì)用來(lái)更新該字段
DateTimeField:
日期時(shí)間字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相當(dāng)于 Python 中的 datetime.datetime()
執(zhí)行命令:
manage.py@mysite2 > makemigrations app01 manage.py@mysite2 > migrate app01
去數(shù)據(jù)庫(kù)中看一下

添加數(shù)據(jù)

只添加 name、age 字段

DateField 是添加這條數(shù)據(jù)的日期
不常用字段
BigAutoField(AutoField):
bigint 自增列,必須填入?yún)?shù) primary_key=True
如果沒(méi)有寫(xiě)自增列,則會(huì)自動(dòng)創(chuàng)建一個(gè)列名為 id 的列
SmallIntegerField(IntegerField):
短整型,-32768 到 32767
PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正短整型,0 到 32767
IntegerField(Field):
有符號(hào)的整數(shù)列,-2147483648 到 2147483647
PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正整數(shù),0 到 2147483647
BigIntegerField(IntegerField):
有符號(hào)的長(zhǎng)整型,-9223372036854775808 到 9223372036854775807
BooleanField(Field):
布爾值類(lèi)型
NullBooleanField(Field):
可以為空的布爾值
TextField(Field):
文本類(lèi)型
EmailField(CharField):
字符串類(lèi)型,Django Admin 以及 ModelForm 中提供驗(yàn)證機(jī)制
IPAddressField(Field):
字符串類(lèi)型,Django Admin 以及 ModelForm 中提供驗(yàn)證 IPV4 機(jī)制
GenericIPAddressField(Field):
字符串類(lèi)型,Django Admin 以及 ModelForm 中提供驗(yàn)證 Ipv4 和 Ipv6
參數(shù):protocol,用于指定 Ipv4 或 Ipv6, 'both',"ipv4","ipv6";unpack_ipv4,如果指定為 True,則輸入 ::ffff:192.0.2.1 的時(shí)候,可解析為 192.0.2.1,開(kāi)啟此功能,需要 protocol="both"
URLField(CharField):
字符串類(lèi)型,Django Admin 以及 ModelForm 中提供驗(yàn)證 URL
SlugField(CharField):
字符串類(lèi)型,Django Admin 以及 ModelForm 中提供驗(yàn)證支持 字母、數(shù)字、下劃線、連接符(減號(hào))
CommaSeparatedIntegerField(CharField):
字符串類(lèi)型,格式必須為逗號(hào)分割的數(shù)字
UUIDField(Field):
字符串類(lèi)型,Django Admin 以及 ModelForm 中提供對(duì) UUID 格式的驗(yàn)證
TimeField(DateTimeCheckMixin, Field):
時(shí)間格式,HH:MM[:ss[.uuuuuu]]
DurationField(Field):
長(zhǎng)整數(shù),時(shí)間間隔,數(shù)據(jù)庫(kù)中按照 bigint 存儲(chǔ),ORM 中獲取的值為 datetime.timedelta 類(lèi)型
FloatField(Field):
浮點(diǎn)型
DecimalField(Field):
10進(jìn)制小數(shù)
參數(shù):max_digits,小數(shù)總長(zhǎng)度;decimal_places,小數(shù)位長(zhǎng)度
BinaryField(Field):
二進(jìn)制類(lèi)型
FilePathField(Field):
字符串,Django Admin 以及 ModelForm 中提供讀取文件夾下文件的功能
參數(shù):path,文件夾路徑;match=None,正則匹配;recursive=False,遞歸下面的文件夾;allow_files=True,允許文件;allow_folders=False,允許文件夾
FileField(Field):
字符串,路徑保存在數(shù)據(jù)庫(kù),文件上傳到指定目錄
參數(shù):upload_to="",上傳文件的保存路徑;storage=None,存儲(chǔ)組件,默認(rèn) django.core.files.storage.FileSystemStorage
ImageField(FileField):
字符串,路徑保存在數(shù)據(jù)庫(kù),文件上傳到指定目錄
參數(shù):upload_to="",上傳文件的保存路徑;storage=None 存儲(chǔ)組件,默認(rèn) django.core.files.storage.FileSystemStorage;width_field=None,上傳圖片的高度保存的數(shù)據(jù)庫(kù)字段名(字符串);height_field=None,上傳圖片的寬度保存的數(shù)據(jù)庫(kù)字段名(字符串)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Django ORM 自定義 char 類(lèi)型字段解析
- django中ORM模型常用的字段的使用方法
- Django中URL的參數(shù)傳遞的實(shí)現(xiàn)
- 淺談django的render函數(shù)的參數(shù)問(wèn)題
- django 使用 request 獲取瀏覽器發(fā)送的參數(shù)示例代碼
- django中的HTML控件及參數(shù)傳遞方法
- Django URL傳遞參數(shù)的方法總結(jié)
- Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級(jí)Cache設(shè)置
- 簡(jiǎn)單了解Django ORM常用字段類(lèi)型及參數(shù)配置
相關(guān)文章
python3射線法判斷點(diǎn)是否在多邊形內(nèi)
這篇文章主要為大家詳細(xì)介紹了python3射線法判斷點(diǎn)是否在多邊形內(nèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
Python基礎(chǔ)語(yǔ)法(Python基礎(chǔ)知識(shí)點(diǎn))
這篇文章主要介紹了Python基礎(chǔ)語(yǔ)法(Python基礎(chǔ)知識(shí)點(diǎn)),需要的朋友可以參考下2016-02-02
pyinstaller參數(shù)介紹以及總結(jié)詳解
這篇文章主要介紹了pyinstaller參數(shù)介紹以及總結(jié)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
使用python對(duì)文件中的數(shù)值進(jìn)行累加的實(shí)例
今天小編就為大家分享一篇使用python對(duì)文件中的數(shù)值進(jìn)行累加的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
使用PyTorch實(shí)現(xiàn)MNIST手寫(xiě)體識(shí)別代碼
今天小編就為大家分享一篇使用PyTorch實(shí)現(xiàn)MNIST手寫(xiě)體識(shí)別代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01

