Django ORM模型Field介紹及外來鍵使用

2021-10-03 12:24:55 字數 1659 閱讀 8275

常用字段:

在django中,定義了一些field來與資料庫表中的字段型別來進行對映。

autofield:對映到資料庫中的int型別,可以有自動增長的特性。一般不需要使用這個型別,如果不指定主鍵,那麼模型會自動的生成乙個叫做id的自動增長的主鍵。

bigautofield:64位的整型,類似於autofield,只是產生的資料範圍不同。

booleanfield:在模型層面接收的是true/false。在資料庫是tinyint型別。如果沒有指定預設值,預設值是none。

charfield:在資料庫層面是varchar型別,在python層面就是普通的字串。這個型別在使用的時候必須要指定最大的長度,也即必須要傳遞max_length這個關鍵字引數進去。

datefield:日期型別。在python中是datatime.date型別,可以記錄年月日。在對映到資料庫中也是date型別。使用這個field可以傳遞以下幾個引數:

auto_now:d 在每次這個資料儲存的時候,都使用當前的時間。比如作為乙個記錄修改日期的字段可以將這個屬性設定。

auto_now_add:在每次資料第一次被新增進去的時候,都使用當前的時間。

emailfield:類似於charfield。在資料庫底層也是乙個varchar型別。最大長度為254個字元。

filefield:用來儲存檔案的。

floadfield:浮點型別,對映到資料庫中是float類似。

integerfield:整型。

bigintegerfield:大整型。

positiveintegerfield:正整型。

smallintegerfield:小整型。

positivesmallintegerfield:正小整型。

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

uuidfield:只能儲存uuid格式的字串。

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

field的常用引數:

orm外來鍵使用

外來鍵:類定義為class foreignkey(to,on_delete,**options)。第乙個引數是引用的哪個型別,第二個引數是在使用外來鍵引用的模型資料被刪除了,這個字段如何處理,比如有cascade、set_null等。比如有乙個user和乙個article兩個模型,乙個user可以發表多篇文章,乙個article只能有乙個author,並且通過外來鍵進行引用。示例**:

class user(models.model):

username=models.charfield(max_length=20)

password=models.charfield(max_length=20)

class article(models.model):

title=models.charfield(max_length=100)

content=models.textfield()

author=models.foreignkey(「user」,on_delete=models.cascade)

如果模型的外來鍵引用的是本身自己這個模型,那麼to引數可以為』self』,或者是這個模型的名字。

Django ORM模型學習筆記(一)

如果想要先在django專案中建立資料表然後匯入資料庫中,此部落格可作為參考 首先看乙個例子 from django.db import models class address models.model address id models.autofield primary key true na...

ThinkPHP CURD方法盤點 field方法

thinkphp的curd操作中有很多非常實用的方法,從這篇開始,我們會為大家一一介紹。首先為大家介紹下field方法的用法。field屬於模型的連貫操作方法之一,主要目的是標識要返回或者操作的字段,可以用於查詢和寫入操作。在查詢操作中field方法是使用最頻繁的。model field id,ti...

6 Django ORM模型運算元據庫

專案中大量使用原生sql語句使得整個專案的 很繁瑣,就會出現很多問題 sql重複性較高,利用率低。大量原始sql語句可能是各種拼接的結果,當資料庫中內容做了修改,需要一一找到對應的sql進行檢查修改,浪費時間,不一定改全。可能存在sql注入的安全隱患問題,使得專案癱瘓。orm的使用會避免以上問題,其...