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

Django ORM 常用的13個方法

介紹一個可以以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列表是否有東西,結果為True或False; 

二. 小結:

   返回物件列表(Queryset)的方法有:

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

   返回單個物件的方法有:

   first()   last()   get()   create()建立一個物件,且返回剛建立的物件

   判斷布林值的有:

   exists()

   返回數字的有:

   count()