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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM