Django框架(之六)資料庫模型屬性和外來鍵

2021-10-13 09:53:33 字數 1753 閱讀 7899

常用字段

含義autofield

對映到資料庫中是int型別,可以有自動增長的特性

bigautofield

64位的整形,類似於autofield,資料的範圍是從1-9223372036854775807

booleanfield

在模型層面接收的是true/false

charfield

在資料庫層面是varchar型別,在python層面就是普通的字串,最大長度

datetimefield

日期時間型別,不僅僅可以儲存日期,還可以儲存時間

emailfield

在資料庫底層也是乙個varchar型別,最大長度是254個字元

filefield

用來儲存檔案的

imagefield

用來儲存檔案的

floatfield

浮點型別

integerfield

整形,值的區間是-2147483648——2147483647

bigintegerfield

大整形,值的區間是-9223372036854775808——9223372036854775807

positiveintegerfield

正整形,值的區間是0——2147483647

smallintegerfield

小整形,值的區間是-32768——32767

positivesmallintegerfield

正小整形,值的區間是0——32767

textfield

大量的文字型別,對映到資料庫中是longtext型別

uuidfield

只能儲存uuid格式的字串,uuid是乙個32位的全球唯一的字串,一般用來作為主鍵

urlfield

類似於charfield,只不過只能用來儲存url格式的字串,並且預設的max_length是200

如果乙個模型使用了外來鍵。那麼在對方那個模型被刪掉後,該進行什麼樣的操作。可以通過on_delete來指定。可以指定的型別如下:

1.cascade:級聯操作。如果外來鍵對應的那條資料被刪除了,那麼這條資料也會被刪除。

2.protect:受保護。即只要這條資料引用了外來鍵的那條資料,那麼就不能刪除外來鍵的那條資料。

3.set_null:設定為空。如果外來鍵的那條資料被刪除了,那麼在本條資料上就將這個字段設定為空。如果設定這個選項,前提是要指定這個字段可以為空。

4.set_default:設定預設值。如果外來鍵的那條資料被刪除了,那麼本條資料上就將這個字段設定為預設值。如果設定這個選項,前提是要指定這個字段乙個預設值。

5.set():如果外來鍵的那條資料被刪除了。那麼將會獲取set函式中的值來作為這個外來鍵的值。set函式可以接收乙個可以呼叫的物件(比如函式或者方法),如果是可以呼叫的物件,那麼會將這個物件呼叫後的結果作為值返回回去。

6.do_nothing:不採取任何行為。一切全看資料庫級別的約束。

以上這些選項只是django級別的,資料級別依舊是restrict!

Django 模型(資料庫)

1.新建專案和應用 django admin.py startproject learn models 新建乙個專案 cd learn models 進入到該項目的資料夾 2.新增應用 django.contrib.admin django.contrib.auth django.contrib.c...

Django模型資料庫配置

在虛擬開發環境中,安裝mysql的資料庫驅動mysqlclient pip install mysqlclient在項 的 settings.py 件中找到databases 配置項,將其資訊修改為 databases 屬性定義語法為 屬性 models.欄位型別 選項 屬性命名規則 autofie...

Django5 資料庫之模型字段

欄位名型別 備註models.autofield 自增列 int 如果沒有的話,缺省會生成乙個名稱為 id 的列,如果要顯示的自定義乙個自增列,必須將給列設定為主 鍵 primary key true。models.charfield 字串字段 用於從資料庫層和django校驗層限制該字段所允許的最...