Django ORM 常用字段與不常用字段匯總
常用字段
AutoField:
int 自增列,必須填入?yún)?shù) primary_key=True
如果沒有寫 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:
字符類型,必須提供 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ù)類型,范圍在 -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 的話,創(chuàng)建數(shù)據(jù)記錄的時(shí)候會(huì)把當(dāng)前時(shí)間賦給該字段
auto_now=True 的話,每次更新數(shù)據(jù)記錄的時(shí)間會(huì)用來更新該字段
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
如果沒有寫自增列,則會(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):
布爾值類型
NullBooleanField(Field):
可以為空的布爾值
TextField(Field):
文本類型
EmailField(CharField):
字符串類型,Django Admin 以及 ModelForm 中提供驗(yàn)證機(jī)制
IPAddressField(Field):
字符串類型,Django Admin 以及 ModelForm 中提供驗(yàn)證 IPV4 機(jī)制
GenericIPAddressField(Field):
字符串類型,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,開啟此功能,需要 protocol="both"
URLField(CharField):
字符串類型,Django Admin 以及 ModelForm 中提供驗(yàn)證 URL
SlugField(CharField):
字符串類型,Django Admin 以及 ModelForm 中提供驗(yàn)證支持 字母、數(shù)字、下劃線、連接符(減號(hào))
CommaSeparatedIntegerField(CharField):
字符串類型,格式必須為逗號(hào)分割的數(shù)字
UUIDField(Field):
字符串類型,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 類型
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)制類型
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 類型字段解析
- django中ORM模型常用的字段的使用方法
- Django中URL的參數(shù)傳遞的實(shí)現(xiàn)
- 淺談django的render函數(shù)的參數(shù)問題
- django 使用 request 獲取瀏覽器發(fā)送的參數(shù)示例代碼
- django中的HTML控件及參數(shù)傳遞方法
- Django URL傳遞參數(shù)的方法總結(jié)
- Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級(jí)Cache設(shè)置
- 簡(jiǎn)單了解Django ORM常用字段類型及參數(shù)配置
相關(guān)文章
Python中等待5秒并暫停執(zhí)行的方法總結(jié)
Python 具有各種功能和庫(kù)來創(chuàng)建交互式應(yīng)用程序,用戶可以在其中提供輸入和響應(yīng), 我們可以創(chuàng)建需要暫停應(yīng)用程序執(zhí)行的情況,本文主要和大家分享三個(gè)Python 中等待 5 秒并暫停執(zhí)行的方法,有需要的可以參考下2023-10-10Python selenium爬取微博數(shù)據(jù)代碼實(shí)例
這篇文章主要介紹了Python selenium爬取微博數(shù)據(jù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令總結(jié)
在跑項(xiàng)目時(shí)常常會(huì)安裝很多的包,也通常會(huì)遇到需要安裝指定版本的包,以及包與包不兼容的問題,下面這篇文章主要給大家介紹了關(guān)于anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令的相關(guān)資料,需要的朋友可以參考下2022-11-11Python讀取mat文件,并轉(zhuǎn)為csv文件的實(shí)例
今天小編就為大家分享一篇Python讀取mat文件,并轉(zhuǎn)為csv文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07