중화사전망 - 자전 검색 - Django 사전 전송

Django 사전 전송

Django 의 get 및 filter 메서드는 django 모델에서 일반적으로 사용되는 방법이므로 차이점을 이해하는 것이 중요합니다.

그것들 사이의 차이를 설명하기 위해 두 개의 모형을 정의했다.

학급 학생 (모델. 모델):

이름 = 모델. CharField(‘name‘', max_length=20, default =''')

나이 = 모델. CharField(‘age‘', max_length=20, default =''')

교과서. 모델):

학생 = 모델. 외래 키 (학생)

우선, django 의 get 방법에 대해 이야기 해 봅시다.

1django 의 get 메서드는 데이터베이스에서 일치 결과를 가져오고 객체를 반환하는 것입니다. 레코드가 없으면 오류가 보고됩니다.

예를 들어 데이터베이스에 레코드가 있고 레코드 이름 값이 "python" 인 경우 student = student.objects.get (name =' 파라오 python') 을 사용합니다.

Student 를 통해 볼 수 있는 record 객체를 반환합니다. __dict__. 사전 {'키': valeus} 를 반환합니다. 여기서 키는 필드 이름이고 values 는 값 내용입니다.

Get 메서드를 사용하여 데이터베이스에 없는 레코드를 조회하면 프로그램에서 오류를 보고합니다.

예: student = student.objects.get (name =' 왕'), 스스로 실행할 수 있습니다.

2 django 의 get 을 사용하여 관련 테이블의 데이터를 가져오는 경우 키 테이블에 데이터가 두 개 이상 있으면 오류가 발생합니다.

예를 들어, 제 학생 테이블에는 다음과 같은 기록이 있습니다.

신분증명 연령

1파이썬 24

책상:

Id 학생 id

1 1

2 1

나는 사용한다.

Student = student.objects.get (name =' python')

Book = book. objects. get(student)

또한 book 테이블의 두 레코드가 student 테이블과 일치하기 때문에 오류를 보고합니다.

Django 필터에 대해 다시 이야기 해 봅시다.

1django 의 필터링 방법은 데이터베이스에서 일치 결과를 가져오고 객체 목록을 반환합니다. 레코드가 없으면 [] 을 반환합니다.

예를 들어, 데이터베이스에 python 값을 가진 레코드가 있는 경우 student = student.objects.filter (name =' 파라오 python') 를 사용합니다.

반환되는 student 는 student [0] 의 결과가 위의 get 메서드에서 반환된 student 의 결과와 동일함을 볼 수 있는 객체 목록입니다.