當前位置:成語大全網 - 書法字典 - Django字典轉移

Django字典轉移

Django的get和filter方法是django模型中常用的方法,因此了解它們之間的區別非常重要。

為了說明它們之間的區別,定義了兩個模型。

班級學生(模特。型號):

名稱=模型。CharField(‘name‘,max_length=20,default =‘‘‘)

年齡=模特。CharField(‘age‘,max_length=20,default =‘‘‘)

課本(模型。型號):

學生=模特。外鍵(學生)

首先,讓我們談談django的get方法:

1django的get方法是從數據庫中獲取匹配結果並返回壹個對象。如果記錄不存在,它將報告壹個錯誤。

例如,如果我的數據庫中有壹條記錄,並且該記錄的名稱的值為“python”,我將使用student = student . objects . get(name =‘法老Python‘)。

返回壹個record對象,您可以通過student查看該對象。__dict__。它返回壹個字典{‘key‘:valeus },其中key是字段的名稱,values是值的內容。

如果我使用get方法查詢數據庫中不存在的記錄,程序會報告錯誤。

例如:student = student . objects . get(name =‘老王‘),可以自己運行。

2如果使用django的get來獲取相關表的數據,如果鍵表中有兩條以上的數據,將會得到壹個錯誤。

例如,在我的學生表中有壹條記錄:

身份證姓名年齡

1 python 24

書臺:

id學生id

1 1

2 1

我使用

student = student . objects . get(name =‘python‘)

book = book . objects . get(student)

它還會報告壹個錯誤,因為book表中有2條記錄與student表匹配。

2.讓我們再來談談django過濾器:

1django的篩選方法從數據庫中獲取匹配結果並返回對象列表。如果記錄不存在,它將返回【】。

例如,如果我的數據庫中有壹條記錄,記錄名稱的值為python,我將使用student = student . objects . filter(name =‘法老Python‘)。

它返回的student是壹個對象列表,可以看到student【0】的結果與上面get方法返回的student的結果相同。