Django ORM 常用字段與不常用字段匯總
常用字段
AutoField:
int 自增列,必須填入?yún)?shù) primary_key=True
如果沒有寫 AutoField,則會自動創(chuàng)建一個列名為 id 的列
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主鍵
CharField:
字符類型,必須提供 max_length 參數(shù), 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:
整數(shù)類型,范圍在 -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 這三個時間字段,都可設(shè)置 auto_now_add、auto_now 屬性
auto_now_add=True 的話,創(chuàng)建數(shù)據(jù)記錄的時候會把當(dāng)前時間賦給該字段
auto_now=True 的話,每次更新數(shù)據(jù)記錄的時間會用來更新該字段
DateTimeField:
日期時間字段,格式 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ù)庫中看一下

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

只添加 name、age 字段

DateField 是添加這條數(shù)據(jù)的日期
不常用字段
BigAutoField(AutoField):
bigint 自增列,必須填入?yún)?shù) primary_key=True
如果沒有寫自增列,則會自動創(chuàng)建一個列名為 id 的列
SmallIntegerField(IntegerField):
短整型,-32768 到 32767
PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正短整型,0 到 32767
IntegerField(Field):
有符號的整數(shù)列,-2147483648 到 2147483647
PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正整數(shù),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
參數(shù):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 中提供驗證支持 字母、數(shù)字、下劃線、連接符(減號)
CommaSeparatedIntegerField(CharField):
字符串類型,格式必須為逗號分割的數(shù)字
UUIDField(Field):
字符串類型,Django Admin 以及 ModelForm 中提供對 UUID 格式的驗證
TimeField(DateTimeCheckMixin, Field):
時間格式,HH:MM[:ss[.uuuuuu]]
DurationField(Field):
長整數(shù),時間間隔,數(shù)據(jù)庫中按照 bigint 存儲,ORM 中獲取的值為 datetime.timedelta 類型
FloatField(Field):
浮點型
DecimalField(Field):
10進制小數(shù)
參數(shù):max_digits,小數(shù)總長度;decimal_places,小數(shù)位長度
BinaryField(Field):
二進制類型
FilePathField(Field):
字符串,Django Admin 以及 ModelForm 中提供讀取文件夾下文件的功能
參數(shù):path,文件夾路徑;match=None,正則匹配;recursive=False,遞歸下面的文件夾;allow_files=True,允許文件;allow_folders=False,允許文件夾
FileField(Field):
字符串,路徑保存在數(shù)據(jù)庫,文件上傳到指定目錄
參數(shù):upload_to="",上傳文件的保存路徑;storage=None,存儲組件,默認 django.core.files.storage.FileSystemStorage
ImageField(FileField):
字符串,路徑保存在數(shù)據(jù)庫,文件上傳到指定目錄
參數(shù):upload_to="",上傳文件的保存路徑;storage=None 存儲組件,默認 django.core.files.storage.FileSystemStorage;width_field=None,上傳圖片的高度保存的數(shù)據(jù)庫字段名(字符串);height_field=None,上傳圖片的寬度保存的數(shù)據(jù)庫字段名(字符串)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python基礎(chǔ)語法(Python基礎(chǔ)知識點)
這篇文章主要介紹了Python基礎(chǔ)語法(Python基礎(chǔ)知識點),需要的朋友可以參考下2016-02-02
pyinstaller參數(shù)介紹以及總結(jié)詳解
這篇文章主要介紹了pyinstaller參數(shù)介紹以及總結(jié)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

