Django ORM 經常使用的13個方法

介紹一個能夠以py腳本方式運行ORM操做的方法:django

可在項目內新建個py文件,複製項目內manage.py文件中的如下代碼:app

if __name__ == "__main__":orm

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

     import django  # 手動添加導入排序

     django.setup()  # 啓動get

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

而後就能夠以右鍵運行的方式來操做ORM語句了.form

一. 必會的13條方法:import

   1. models.Book.objects.all()  # 獲取到全部的書籍對象,結果是對象列表object

   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()

相關文章
相關標籤/搜索