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 中提供驗證機(jī)制
IPAddressField(Field):
字符串類型,Django Admin 以及 ModelForm 中提供驗證 IPV4 機(jī)制
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進(jìn)制小數(shù)
參數(shù):max_digits,小數(shù)總長度;decimal_places,小數(shù)位長度
BinaryField(Field):
二進(jìn)制類型
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,存儲組件,默認(rèn) django.core.files.storage.FileSystemStorage
ImageField(FileField):
字符串,路徑保存在數(shù)據(jù)庫,文件上傳到指定目錄
參數(shù):upload_to="",上傳文件的保存路徑;storage=None 存儲組件,默認(rèn) django.core.files.storage.FileSystemStorage;width_field=None,上傳圖片的高度保存的數(shù)據(jù)庫字段名(字符串);height_field=None,上傳圖片的寬度保存的數(shù)據(jù)庫字段名(字符串)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中等待5秒并暫停執(zhí)行的方法總結(jié)
Python 具有各種功能和庫來創(chuàng)建交互式應(yīng)用程序,用戶可以在其中提供輸入和響應(yīng), 我們可以創(chuàng)建需要暫停應(yīng)用程序執(zhí)行的情況,本文主要和大家分享三個Python 中等待 5 秒并暫停執(zhí)行的方法,有需要的可以參考下2023-10-10Python selenium爬取微博數(shù)據(jù)代碼實例
這篇文章主要介紹了Python selenium爬取微博數(shù)據(jù)代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令總結(jié)
在跑項目時常常會安裝很多的包,也通常會遇到需要安裝指定版本的包,以及包與包不兼容的問題,下面這篇文章主要給大家介紹了關(guān)于anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令的相關(guān)資料,需要的朋友可以參考下2022-11-11Python讀取mat文件,并轉(zhuǎn)為csv文件的實例
今天小編就為大家分享一篇Python讀取mat文件,并轉(zhuǎn)為csv文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07