django-orm 조회표 기록의 다양한 방법
32100 단어 django
all () 결과는queryset 형식입니다
>>> models.Book.objects.all()
<QuerySet [<Book: Book object>, <Book: Book object>, <Book: Book object>]>
filter () 조건 조회 (아래에도 여러 가지 방법이 있습니다. 아래 참조)
>>> ret = models.Book.objects.filter(id=5)
>>> ret
<QuerySet [<Book: Book object>]>
get () 는 모델 대상입니다. 하나는 두 가지 오류가 발생할 수 있습니다.
>>> ret = models.Book.objects.get(id=5)
>>> ret
<Book: Book object>
exclude () 제외
>>> ret = models.Book.objects.all()
>>> ret.exclude(id=5)
<QuerySet [<Book: Book object>, <Book: Book object>]>
order_by () 정렬
models.Book.objects.all().order_by('-price','id')
# mysql order by price desc,id asc;
reverse() 반전
models.Book.objects.all().order_by('id').reverse()
#
count () 계수, 반환 결과의 수량 통계
>>> ret = models.Book.objects.all().count()
>>> ret
3
first () 는 첫 번째 데이터를 되돌려줍니다. 결과는 모델 대상 형식입니다.
>>> ret = models.Book.objects.all()
>>> ret.first()
<Book: Book object>
>>> ret.first().id
5
last () 가 마지막 데이터를 되돌려줍니다. 결과는 모델 대상 형식입니다.
>>> ret = models.Book.objects.all()
>>> ret.last()
<Book: Book object>
>>> ret.last().id
11
exists () 반환 결과 집합에 데이터가 있는지 판단
>>> ret = models.Book.objects.filter(id=999).exists()
>>> ret
False
>>> ret = models.Book.objects.filter(id=11).exists()
>>> ret
True
values () (되돌아오는queryset, 사전 형식 데이터)
>>> ret = models.Book.objects.all().values('id','book_name')
>>> ret
<QuerySet [{'id': 5, 'book_name': '1'}, {'id': 6, 'book_name': '2'}, {'id': 11, 'book_name': '23'}]>
values_list (되돌아오는queryset, 안에 그룹 형식 데이터)
>>> ret = models.Book.objects.all().values_list('id','book_name')
>>> ret
<QuerySet [(5, '1'), (6, '2'), (11, '23')]>
values 또는values 호출list는 Objects 컨트롤러입니다. 모든 데이터를 되돌려줍니다.
>>> ret = models.Book.objects.values()
>>> ret
<QuerySet [
{'id': 5, 'book_name': '1', 'price': 2.0, 'shijian': '2018-03-22', 'press': 'admin'},
{'id': 6, 'book_name': '2', 'price': 1234.0, 'shijian': '2013-3-2', 'press': 'sdf'},
{'id': 11, 'book_name': '23', 'price': 11.0, 'shijian': '2019-09-10', 'press': '234'}
]>
distinct () 무게 제거,values 설정과valueslist 사용
>>> models.Book.objects.all().values('book_name').distinct()
<QuerySet [{'book_name': '1'}, {'book_name': '2'}, {'book_name': '23'}]>
filter 이중 밑줄 조회
__in price 값은 이 세 개 중 임의의 대상과 같다
Book.objects.filter(price__in=[100,200,300])
__gt 이상
>>> ret = models.Book.objects.filter(price__gt=1233)
>>> ret.values()
<QuerySet [{'id': 6, 'book_name': '2', 'price': 1234.0, 'shijian': '2013-3-2', 'press': 'sdf'}]>
__gte 이상
>>> ret = models.Book.objects.filter(price__gte=2)
>>> ret.count()
3
lt는
>>> ret = models.Book.objects.filter(price__lt=1234)
>>> ret.count()
2
lte 이하
>>> ret = models.Book.objects.filter(price__lte=1234)
>>> ret.count()
3
__range 는 35 보다 크고, 38 보다 작다
>>>ret = models.Book.objects.filter(price__range=[35,38])
>>>ret.count()
3
__contains는 이 문자열의 데이터를 포함합니다
>>> ret = models.Book.objects.filter(book_name__contains='2')
>>> ret.values()
<QuerySet [{'id': 6, 'book_name': '2', 'price': 1234.0, 'shijian': '2013-3-2', 'press': 'sdf'}, {'id': 11, 'book_name': '23', 'price': 11.0, 'shijian': '2019-09-10', 'press': '234'}]>
__icontains는 대소문자를 구분하지 않습니다
ret = models.Book.objects.filter(book_name__icontains='py')
__startswith는 무엇으로 시작합니까 - endswith (무엇으로 끝납니까) - istartswith (대소문자 구분 없음)
>>> ret = models.Book.objects.filter(book_name__startswith='2')
>>> ret.values()
<QuerySet [{'id': 6, 'book_name': '2', 'price': 1234.0, 'shijian': '2013-3-2', 'press': 'sdf'}, {'id': 11, 'book_name': '23', 'price': 11.0, 'shijian': '2019-09-10', 'press': '234'}]>
__year 질의 연도month월
ret = models.Book.objects.filter(publish_date__year='2018')
__isnull 필드 값이 비어 있는 데이터
models.Book.objects.filter(publish_date__isnull=True)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.