Django에서 mysql 데이터베이스 삭제
12341 단어 Django
In [1]: from demo_class.models import BookInfo
In [2]: from datetime import date
In [3]: from demo_class.models import HeroInfo
In [4]: book = BookInfo(btitle = 'wang',bpub_date = date(1990,10,10))
In [5]: book.save()
2)create(): 모델 클래스를 통과합니다.objects.create()가 저장됩니다.
In [11]: HeroInfo.objects.create(
...: hname = ' ',
...: hgender = 0,
...: hbook = book
...: )
Out[11]:
2. 조회 1.기본 질의
all 방법은 모든 데이터를 되돌려줍니다
In [12]: BookInfo.objects.all()
Out[12]: <QuerySet [<BookInfo: >, <BookInfo: >, <BookInfo: > >, <BookInfo: >, <BookInfo: wang>, <BookInfo: wang>]>
get 조회 단일 결과, 존재하지 않으면 모델 클래스를 던집니다.DoesNotExist 예외.
In [13]: BookInfo.objects.get(id = 3)
Out[13]:
In [14]: BookInfo.objects.get(id = 100)
DoesNotExist: BookInfo matching query does not exist.
count 조회 결과 수량.
In [15]: BookInfo.objects.count()
Out[15]: 7
2. 질의 필터링
*filter 여러 결과 필터링 exclude 조건에 부합되는 나머지 결과 get 필터 단일 결과 제거 * 필터 조건의 표현 문법은 다음과 같습니다: ** 속성 이름비교 연산자 = 값 속성 이름과 비교 연산자 사이에 두 개의 밑줄을 사용하기 때문에 속성 이름에 여러 개의 밑줄을 포함할 수 없습니다.**
필터 조건의 사용에 대해 상술한 세 가지 방법은 같기 때문에 필터로만 설명한다.
In [17]: BookInfo.objects.filter(id__in = [1,2,3,4])
Out[17]: , , >]>
1) 상등exact: 판정 등을 나타낸다.예: 번호 2의 도서를 조회하다.
BookInfo.objects.filter(id__exact=2)
# :
BookInfo.objects.filter(id=1)
2) 모호한 조회contains: 포함 여부.설명:% 를 포함하려면 전의가 필요 없으면 바로 쓰면 됩니다.예: 책 제목에'전'이 포함된 도서를 조회하다.
BookInfo.objects.filter(btitle__contains=' ')
startswith, endswith: 지정된 값으로 시작하거나 끝냅니다.예: 책 제목이'부'로 끝나는 책을 조회하다
BookInfo.objects.filter(btitle__endswith=' ')
상기 연산자는 모두 대소문자를 구분하는데 이 연산자 앞에 i를 더하면 대소문자를 구분하지 않는다는 뜻이다. 예를 들어iexact,icontains,istartswith,iendswith.
3) 빈 조회 isnull: null인지 여부입니다.예: 책 이름이 비어 있지 않은 책을 조회하다.
BookInfo.objects.filter(btitle__isnull=False)
4) 범위 조회 in: 범위에 포함할지 여부.예: 조회 번호가 1 또는 3 또는 5인 도서
BookInfo.objects.filter(id__in=[1, 3, 5])
5) 비교 쿼리lt가 (greater then) gte보다 크거나 같음(greater then equal) lt보다 작음(less then) lt보다 작음(less then equal) 예: 쿼리 번호가 3보다 큰 도서
BookInfo.objects.filter(id__gt=3)
exclude () 필터를 사용하는 것과 같지 않은 연산자조회 번호가 3이 아닌 도서
BookInfo.objects.exclude(id=3)
6) 일자 조회 year,month,day,weekday,hour,minute,second: 날짜 시간 형식의 속성을 연산합니다.예: 1980년에 발표된 도서를 조회하다.
BookInfo.objects.filter(bpub_date__year=1980)
예: 1980년 1월 1일 이후 발표된 도서를 조회하다.
BookInfo.objects.filter(bpub_date__gt=date(1990, 1, 1))
3. F 대상은 F 대상을 사용하여 두 속성을 비교하고django.db.models의 문법은 다음과 같습니다: F (속성명) 예: 댓글보다 읽는 양이 많은 도서를 조회합니다
from django.db.models import F
#
BookInfo.objects.filter(bread__gte=F('bcomment'))
F 객체에서 산수 연산
BookInfo.objects.filter(bread__gt=F('bcomment') * 2)
을 사용할 수 있습니다.Q 대상의 여러 필터가 하나씩 호출되어 논리와 관계를 나타낸다. sql 문장의where 부분과 같은 and 키워드 예: 조회 읽기량이 20보다 많고 번호가 3보다 적은 도서BookInfo.objects.filter(bread__gt=20,id__lt=3)
#
BookInfo.objects.filter(bread__gt=20).filter(id__lt=3)
논리적 또는 or의 조회를 실현하려면 Q() 대상 결합 | 연산자를 사용해야 하며 Q 대상은django에 의거된다.db.models에서구문은 다음과 같습니다.Q(속성명 연산자=값) 예: 20보다 많은 도서를 조회하고 Q 대상으로 바꾸면 다음과 같다.
from django.db.models import Q
BookInfo.objects.filter(Q(bread__gt=20))
Q 대상은 &, | 연결, & 논리 및 표시를 사용할 수 있습니다. | 표시 또는, ~ 표시 비예: 조회 읽기량이 20보다 많거나 번호가 3보다 적은 도서는 Q 대상으로만 가능합니다.
# id=1,2,3** **
BookInfo.objects.filter(Q(id__in = [1,2,3]) | Q(btitle = ' '))
조회 번호가 3이 아닌 도서
BookInfo.objects.filter(~Q(pk=3))
5. 집합 함수는aggregate() 필터를 사용하여 집합 함수를 호출합니다. 예: 도서의 총 읽기량을 조회합니다.
In [14]: from django.db.models import Sum
In [15]:BookInfo.objects.aggregate(Sum('bread'))
Out[15]: {'bread__sum': 136}
#
6. 정렬
BookInfo.objects.all().order_by('bread') #
BookInfo.objects.all().order_by('-bread') #
7. 관련 조회 일대다: 대응하는 모델 유형의 대상.다중 대응하는 모델 클래스 이름 소문자set 예:
# id 1
b = BookInfo.objects.get(id=1)
b.heroinfo_set.all()
다대일로 대응하는 모델 유형의 대상.다중 대응 모델 클래스의 관계 클래스 속성 예:
h = HeroInfo.objects.get(id=1)
h.hbook
대응하는 모델 클래스 관련 대상에 접근하는 id 문법: 대응하는 모델 클래스 대상입니다.연관 클래스 속성id 예:
h = HeroInfo.objects.get(id=1)
h.hbook_id
연관 필터 질의 연관 모델 클래스 이름 소문자속성명조건 연산자 = 값이 없는 경우연산자 부분은 도서 중의'손오공'이름이 있는 도서의 명칭을 조회하는 것과 같다는 것을 나타낸다
BookInfo.objects.filter(heroinfo__hname=' ')
조회서 이름은'천룡팔부'중의 모든 영웅이다.
HeroInfo.objects.filter(hbook__btitle=' ')
3. 수정 수정 업데이트는 두 가지 방법이 있다. 1)save는 모델 클래스 대상의 속성을 수정한 다음에save() 방법을 실행한다.
hero = HeroInfo.objects.get(hname=' ')
hero.hname = ' '
hero.save()
2) 업데이트는 모델 클래스를 사용합니다.objects.filter().업데이트 (), 영향을 받은 줄 수를 되돌려줍니다
HeroInfo.objects.filter(hname=' ').update(hname=' ')
삭제, 삭제에는 두 가지 방법이 있습니다.
1) 모델 클래스 개체 delete
hero = HeroInfo.objects.get(id=13)
hero.delete()
2) 모델 클래스.objects.filter().delete()
HeroInfo.objects.filter(id=14).delete()
참고: 실제 개발에서는 일반적으로 이런 물리적 삭제를 사용하지 않고 논리적 삭제를 자주 사용합니다. 예를 들어 다음과 같습니다.
book = BookInfo.objects.get(id =1 )
book.is_delete = True
book.save()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.