Django QuerySet 인터페이스

2746 단어 Django
1. 체인 호출을 지원하는 인터페이스
QuerySet의 인터페이스를 반환합니다.
  • all 인터페이스.select * from tablename, 모든 데이터 조회용
  • Filter 인터페이스.조건 필터 데이터에 따라 상용 조건은 기본적으로 필드가 같음, 같지 않음, 크음, 작음, 물론 다른 것도 있다. 예를 들어 LIKE 조회를 만드는:Model로 바꿀 수 있다.objects.filert(content contains=조건)
  • exclude 인터페이스.같은 Filter, 단지 상반된 논리
  • reverse 인터페이스.QuerySet 결과를 역순으로 배열하기
  • distinct 인터페이스.재조회를 위해 SELECT DISTINCT 같은 SQL 조회 생성
  • none 인터페이스.빈 QuerySet 반환
  • 2. 체인 호출이 지원되지 않는 인터페이스
    즉, 반환 값이QuerySet의 인터페이스가 아닙니다.
  • get 인터페이스.예를 들어 Post.objects.get(id=1) id가 1인 글을 조회하는 데 사용합니다: 존재하면 대응하는 Post 실례를 직접 되돌려줍니다.존재하지 않으면 DoesNotExist 이상을 던져서 일반적인 상황에서 우리는 이렇게 사용합니다:
  • try: 
        post = Post.objects.get(id=1) 
    except Post.DoesNotExist:
    
    
  • create 인터페이스.모델 대상을 직접 만들 수 있습니다. 예를 들어post=Post.objects.create(title="Django 함께 배우기")
  • get_or_create 인터페이스.조건에 따라 찾습니다. 찾지 못하면create를 호출해서 만듭니다.
  • update_or_create 인터페이스.동getor_create는 업데이트 작업에만 사용됩니다
  • count 인터페이스.반환QuerySet에 기록된 레코드 수
  • latest 인터페이스.최신 기록을 되돌려주는 데 사용하지만, 모델의Meta에 정의해야 합니다: getlatest_by =
  • earliest 인터페이스.최초의 기록을 되돌려줍니다
  • first 인터페이스.현재 QuerySet 레코드에서 첫 번째
  • 가져오기
  • last 인터페이스.마지막 항목 가져오기
  • exists 인터페이스.True 또는 False를 반환합니다.만약QuerySet에 데이터가 있는지 없는지를 판단할 필요가 있다면 이 인터페이스를 사용하는 것이 가장 적합한 방법입니다.count이나len(QuerySet) 같은 조작으로 존재 여부를 판단하지 마십시오.반대로 다음에QuerySet에 사용될 데이터를 예상할 수 있으면len(QuerySet) 방식으로 판단할 수 있으며 DB 조회
  • 를 한 번 줄일 수 있다.
  • bulk_create 인터페이스.기록을 대량으로 만드는 데 사용되는create와 같습니다
  • in_bulk 인터페이스.대량 조회, 두 개의 매개 변수 수신 idlist 및 filedname.Post.objects.in_bulk([1, 2, 3])에서 id가 1, 2, 3인 데이터를 조회하고 반환 결과는 사전 형식 키가 조회 조건이다.반환 결과 예: {1:,2:,3:}
  • 업데이트 인터페이스.조건에 따라 기록을 대량으로 업데이트하는 데 사용합니다. 예를 들어:
  • Post.objects.filter(owner_name="carson").update(title='    ')
  • delete 커넥터.업데이트, 이 인터페이스는 조건에 따라 기록을 대량으로 삭제하는 데 사용됩니다.주의해야 할 것은 업데이트와 delete는 모두 Django의 signal
  • 을 터치할 것이다.
  • values 인터페이스.어떤 필드의 값을 되돌려야 하고, 모델 실례가 필요하지 않다는 것을 분명히 알았을 때, 이 값을 사용할 수 있습니다.
  • title_list = Post.objects.filter(category_id=1).values('title')

    반환 결과에는 다음과 같이 dict의 QuerySet이 포함됩니다.
  • values_list 인터페이스같은values,그러나tuple을 포함하는QuerySet:
    titles_list = Post.objects.filter(category=1).values_list('title')
  • 반환 결과는 다음과 같습니다. 필드만 있으면 flat=True 매개 변수를 추가하여 다음 작업을 수행할 수 있습니다.
    title_list = Post.objects.filter(category=1).values_list('title',flat=True)
    for title in title_list:   #           
        print(post.content)  #          ,  content

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    좋은 웹페이지 즐겨찾기