list = BookInfo. books. filter (btitle contains = '전송')
startswith, endswith: 지정 한 값 으로 시작 하거나 끝 납 니 다
예: 책의 제목 이 '부' 로 끝 나 는 도 서 를 조회 합 니 다.
list = BookInfo. books. filter (btitle endswith = '부')
isnull: null 인지 여부
예: 책 이름 이 비어 있 지 않 은 도서 목록 을 조회 합 니 다 = BookInfo. books. filter (btitle isnull = False)
이상 연산 자 는 모두 대소 문 자 를 구분 합 니 다. 이 연산 자 앞 에 i 를 붙 여 대소 문 자 를 구분 하지 않 음 을 표시 합 니 다. 예 를 들 어 iexact, icontains, istartswith, iendswith
in: 범위 내 포함 여부
예: 조회 번호 가 1 또는 3 또는 5 인 도서 list = BookInfo. books. filter (pk in = [1, 3, 5])
lt, gte, lt, lt: 크 고 크 며 같 으 며 작 으 며 같다.
예: 조회 번호 가 3 이상 인 도서 list = BookInfo. books. filter (id gt = 3)
같은 연산 자 를 사용 하 는 것 과 같 지 않 습 니 다. exclude () 필 터 를 사용 하 십시오. 조회 번호 가 3 과 같 지 않 은 도서 list = BookInfo. books. exclude (id = 3)
다양한 조회 year, month, day, weekday, hour, minute, second: 날짜 시간 유형의 속성 을 연산 예: 1980 년 에 발 표 된 도서 list = BookInfo. books. filter (bpub date year = 1980)
를 조회 합 니 다.
날짜 조회 1 예: 1980 년 1 월 1 일 이후 발 표 된 도서 list = BookInfo. books. filter (bpub date gt = date (1990, 1, 1) 날짜 조회 2
관련 조회 (외부 연결 유사)
Django 에서 도 join 조회 와 유사 한 문법 을 다음 과 같이 실현 할 수 있 습 니 다.
관련 모델 클래스 이름 소문 자 속성 명 연산 자 = 값
' 연산 자' 부분 이 없 으 면 sql 의 inner join 과 같 음 을 나타 낸다.
예: 도 서 를 조회 하고 도서 에서 영웅 의 묘 사 는 '8'
을 포함 하도록 요구한다.
list = BookInfo.books.filter(heroinfo__hcontent__contains=' ')
예: 책 제목 이 '천 룡 8 부' 인 모든 영웅 조회
list = HeroInfo.objects.filter(hbook__btitle=' ')
F 대상 이전의 조 회 는 모두 대상 의 속성 과 상수 치 를 비 교 했 는데 두 속성 을 어떻게 비교 합 니까?답: F 대상 을 사용 하여 django. db. models 에서 문법 은 다음 과 같 습 니 다.
F (속성 명) 예: 조회 독 서량 이 평 론 량 보다 많은 도서
from django.db.models import F
...
list = BookInfo.books.filter(bread__gte=F('bcommet'))
F () 대상 에서 산수 연산 예 를 사용 할 수 있다. 독 서량 이 2 배 이상 인 도서 조회
list = BookInfo.books.filter(bread__gt=F('bcommet') * 2)
Q 개체
여러 필 터 를 하나씩 호출 하여 논리 와 관 계 를 나타 내 고 sql 구문 에서 where 부분의 and 키워드
와 같 습 니 다.
예: 조회 독 서량 이 20 보다 많 고 번호 가 3 보다 작은 도서 list = BookInfo. books. filter (bread lt = 20, id lt = 3) 또는 list = BookInfo. books. filter (bread lt = 20). filter (id lt = 3)
3. or , Q() |
4. **Q django.db.models **
1.
Q( __ = )
1. : 20 , Q
from django.db.models import Q
...
list = BookInfo.books.filter(Q(bread__gt=20))
2. Q &、| ,**& ,| **
1. : 20, 3 , Q
list = BookInfo.books.filter(Q(bread__gt=20) | Q(pk__lt=3))
5. Q ~ , not
1. : 3
list = BookInfo.books.filter(~Q(pk=3))
집합 함수
aggregate () 필 터 를 사용 하여 취 합 함수 취 합 함 수 를 호출 합 니 다. Avg, Count, Max, Min, Sum 은 django. db. models 에 정의 되 었 습 니 다.
예: 도서 의 총 독 서량 조회
from django.db.models import Sum
...
list = BookInfo.books.aggregate(Sum('bread'))
서버 명령 행 을 실행 하면 list 사전 결 과 를 볼 수 있 습 니 다
count 사용 시 aggregate () 필 터 를 사용 하지 않 습 니 다.
예: 도서 총수 목록 조회 = BookInfo. books. count ()
서버 명령 행 을 실행 하면 list 결 과 를 볼 수 있 습 니 다
관련 조회 연습
관련 조 회 는 모델 유형 을 정의 할 때 세 가지 관련 관 계 를 지정 할 수 있 습 니 다. 가장 많이 사용 되 는 것 은 한 쌍 의 다 중 관계 입 니 다. 예 를 들 어 본 사례 에서 '도서 - 영웅' 은 한 쌍 의 다 중 관계 이 고 그 다음 에 셸 연습 관계 에 들 어간 조회 python manage. py 셸 입 니 다.
조회 번호 가 1 인 도서 북 = BookInfo. books. get (pk = 1)
북 도 서 를 획득 한 모든 영웅 북. heroinfoset.all()
번 호 를 1 로 받 은 영웅 hero = HeroInfo. objects. get (pk = 1)
영웅 이 나 온 도서 hero. hbook
획득
관련
지역 정보, 분류 정보 등 데이터 에 대해 표 구조 가 매우 유사 하고 표 마다 데이터 양 이 매우 제한 적 이다. 데이터 표 의 대량의 데이터 저장 기능 을 충분히 이용 하기 위해 표 로 디자인 할 수 있다. 내부 의 관계 필드 는 본 표 의 메 인 키 를 가리 키 는데 이것 이 바로 관련 표 구조
이다.
booktest / models. py 파일 을 열 고 areaInfo 류 설명 을 정의 합 니 다. 관계 속성 은 self 를 사용 하여 이 종 류 를 가리 키 며 null 과 blank 가 비어 있 도록 허용 해 야 합 니 다. 1 급 데 이 터 는 부모 급 이 없 기 때 문 입 니 다
지역 모델 류 를 정의 하고 성, 시, 구 현 정보 저장
class AreaInfo(models.Model):
atitle=models.CharField(max_length=30)#
aParent=models.ForeignKey('self',null=True,blank=True)#