1. 程式人生 > >ORM常用的13個方法

ORM常用的13個方法

列表 布爾 tinc -s models 獲取 order cts 操作

介紹一個可以以py腳本方式運行ORM操作的方法:

可在項目內新建個py文件,復制項目內manage.py文件中的以下代碼:

if __name__ == "__main__":

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ORM1.settings")

import django # 手動添加導入

django.setup() # 啟動

form app01 import models # 從項目app內導入models

然後就可以以右鍵運行的方式來操作ORM語句了.

. 必會的13條方法:

1. models.Book.objects.all() # 獲取到所有的書籍對象

,結果是對象列表

2. models.Book.objects.get(條件) # 獲取符合條件的對象

3. models.Book.objects.filter(條件) # 篩選所有符合條件的,結果是對象列表

4. models.Book.objects.exclude(條件) # 篩選出所有不符合條件的,結果是對象列表

5. models.Book.objects.all().values( ) # 字典列表,[ {id:1,name:20} , {id:2,name:18} ]

values(‘id’)括號內不指定時顯示全部,如指定則只顯示指定的

,[ {id:1} , {id:2,} ]

6. models.Book.objects.all().values_list( ) # 元組列表,[ (1,20) , (2,18) ]同上,指定時顯示指定內容

7. models.Book.objects.all().order_by(‘id’) # 按照id升序就行排列

models.Book.objects.all().order_by(‘-id’) # 按照id降序就行排列

models.Book.objects.all().order_by(‘age’ , ‘-id’) # 先按age升序,age

相同的按id進行降序排列

8. models.Book.objects.all().order_by(‘id’).reverse() # 對結果反轉; 註意reverse前必須排序,

否則reverse無效; 或在model.py文件中Book類中的Meta中指定ordering=(‘id’ , )註意逗號必須有

9. distinct(): # 去重,當獲取到的結果Queryset列表中同一對象出現多次時去重,只留一個

10. models.Book.objects.all().count() # 計數,可統計結果個數,如對Queryset內元素數進行統計.

11. models.Book.objects.all().first() # 獲取結果中的第一條,即使前面結果列表為空,也不會報錯

12. models.Book.objects.filter().last() # 獲取結果中的最後一條

13.models.Book.objects.filter().exists() # 判斷Queryset列表是否有東西,結果為TrueFalse;

. 小結:

返回對象列表(Queryset)的方法有:

all() filter() ordey_by() exclude() values() values_list() reverse() distinct()

返回單個對象的方法有:

first() last() get() create()創建一個對象,且返回剛創建的對象

判斷布爾值的有:

exists()

返回數字的有:

count()

ORM常用的13個方法