Django에서 ORM의 데이터베이스 삭제 및 수정 작업

8590 단어
전언
ORM이란?ORM (대상 관계 매핑) 은 데이터베이스에 있는 창설표와 데이터의 삭제, 수정 등 조작을 대상을 대상으로 하는 방법으로 처리하는 것을 가리킨다.
간단히 말하면 데이터베이스의 한 장의 표를 하나의 종류로 하고 데이터베이스에 있는 모든 기록을 하나의 대상으로 삼는 것이다.Django에서 클래스를 정의하면 데이터베이스에 테이블이 만들어집니다.Django에서 클래스를 실례화한 대상은 데이터베이스에 기록을 추가한 것이다.Django에서 객체를 삭제하면 데이터베이스에서 레코드가 삭제됩니다.DJango에서 객체의 속성을 변경하면 데이터베이스에서 레코드의 값이 수정됩니다.django에서 조회 대상을 두루 훑어보는 속성 값은 데이터베이스에서 조회 기록된 값이다.
다음은django의views 보기 함수에 있는 명령문입니다.
1, 증가
from app01.models import *

    #create   :   Author.objects.create(name='Alvin')

    #create   :   Author.objects.create(**{"name":"alex"})

    #save   :     author=Author(name="alvin")
                    author.save()

    #save   :     author=Author()
                    author.name="alvin"
                    author.save()

 
주의, 증가할 때create+save 두 조합,create는 증가된 동작,save는 추가된 동작으로 하나도 빠짐없습니다.
삭제(Delete)
 
 
   
>>> Book.objects.filter(id=1).delete()
(3, {'app01.Book_authors': 2, 'app01.Book': 1})

         : remove() clear()  : 

#  
book = models.Book.objects.filter(id=1)

#          1         
book.author.clear()        #   book id=1        
book.author.remove(2)  #   id
book.author.remove(*[1,2,3,4])     #     ,   *

#  
author = models.Author.objects.filter(id=1)
author.book_set.clear() #   boy id=1        
 
   

 三,改(update和save)

#---------------- update          ----------------
    models.Book.objects.filter(id=3).update(title="PHP")
    ##sql:
    ##UPDATE "app01_book" SET "title" = 'PHP' WHERE "app01_book"."id" = 3; args=('PHP', 3)


#--------------- save              ,   -----------
    obj=models.Book.objects.filter(id=3)[0]
    obj.title="Python"
    obj.save()
# SELECT "app01_book"."id", "app01_book"."title", "app01_book"."price", 
# "app01_book"."color", "app01_book"."page_num", 
# "app01_book"."publisher_id" FROM "app01_book" WHERE "app01_book"."id" = 3 LIMIT 1; 
# 
# UPDATE "app01_book" SET "title" = 'Python', "price" = 3333, "color" = 'red', "page_num" = 556,
# "publisher_id" = 1 WHERE "app01_book"."id" = 3;
 
   

,查(update和save)

 
   
#     API:

#  <1>filter(**kwargs):                       

#  <2>all():                       

#  <3>get(**kwargs):                        ,          ,                         。

#-----------                  :   objects.filter.values()--------

#  <4>values(*field):            ValueQuerySet——     QuerySet,             model      ,            
                                     
#  <5>exclude(**kwargs):                      

#  <6>order_by(*field):             

#  <7>reverse():                      

#  <8>distinct():                        

#  <9>values_list(*field):     values()    ,           ,values          

#  <10>count():                        (QuerySet)     。

# <11>first():                      

# <12>last():                        

#  <13>exists():               QuerySet    ,   True,    False。
 
   

 
















 

전재 대상:https://www.cnblogs.com/chaojiyingxiong/p/9490582.html

좋은 웹페이지 즐겨찾기