데이터베이스에서 데이터 읽기
다음 방법을 사용하면 데이터베이스에서 데이터를 로드할 수 있습니다.
-
겟(*Args,**kwargs) -> 모델
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool] -
first(*args, **kwargs) -> Model -
all(*args, **kwargs) -> List[Optional[Model]] -
iterate(*args, **kwargs) -> AsyncGenerator[Model] -
모델
- 모델.로드() 방법
-
쿼리 세트 에이전트
-
QuerysetProxy.get(*args, **kwargs)방법 QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs)방법QuerysetProxy.first(*args, **kwargs)방법QuerysetProxy.all(*args, **kwargs)방법
겟
가져오기(*args,**kwargs) -> 모델
kwargs 설정 조건을 만족하는 데이터베이스에서 첫 번째 행을 가져옵니다.
조건이 설정되지 않은 경우 열 pk별로 정렬된 데이터베이스의 마지막 행을 반환합니다.
조건을 통과하면 실제로 아래에 설명된 필터(*args,**kwargs) 메서드를 호출합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
!!!경고, 조건을 충족하는 행이 없으면 NoMatch 예외가 발생합니다.
1 | |
얻거나 아무것도
get_or_none(*args, **kwargs) -> Model
이는 위에서 설명한 것과 정확히 동일하지만 기준과 일치하는 데이터베이스 레코드를 찾을 수 없으면 예외가 발생하는 대신 없음이 반환됩니다.
획득 또는 생성
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool]
방법의 조합을 만들고 가져옵니다.
기준을 충족하는 행을 가져오려고 시도하고 NoMatch 예외가 발생하면 지정된 kwargs 및 _de로 새 행이 생성됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
위의 예에서!!!경고 앨범과 앨범2는 데이터베이스의 동일한 행임에도 불구하고 두 개의 서로 다른 파이썬 개체입니다! 데이터베이스에서 새 데이터를 명시적으로 로드()할 때까지 두 번째 데이터를 새로 고치지 않습니다.
새 개체를 만들려면 pk 열 값을 전달하거나 pk 열을 자동 증분으로 설정해야 합니다.
먼저
first(*args, **kwargs) -> Model
데이터베이스에서 기본 키 열별로 오름차순으로 정렬된 첫 번째 행을 가져옵니다.
1 2 3 4 5 6 7 8 9 10 11 12 | |
모두
all(*args, **kwargs) -> List[Optional["Model"]]
필터 설정 옵션의 경우 지정된 모델에 대한 데이터베이스의 모든 행을 반환합니다.
Kwargs를 전달하는 것은 필터(*args, **kwargs).all()을 호출하는 것과 같은 바로 가기입니다.
조건을 충족하는 행이 없으면 빈 목록이 반환됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
반복
iterate(*args, **kwargs) -> AsyncGenerator["Model"]
지정된 모델에 대한 데이터베이스의 모든 행에 대한 비동기 반복 가능 생성기를 반환합니다.
args 및/또는 kwargs를 통과하는 것은 filter(*args, **kwargs).iterate() 를 호출하는 것과 같은 바로 가기입니다.
조건을 충족하는 행이 없으면 빈 비동기 생성기가 반환됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
!!!는 반복()을 사용하면 이전 호출에서 사전 추출_lated()를 무시하게 된다고 경고합니다. 두 가지 최적화를 결합하는 것은 의미가 없습니다.
1 | |
모델 방법
각 모델 인스턴스에는 저장, 업데이트 또는 로드하는 일련의 방법이 있습니다.
로드
로드() 메서드를 호출하여 ForeignKey 관련 모델을 로드할 수 있습니다.
다른 프로세스에 의해 모델이 변경된 경우 로드()를 사용하여 데이터베이스에서 모델을 새로 고칠 수 있습니다.
!!!팁 모델 방법의 부하() 방법에 대해 자세히 알아보기
QuerysetProxy 방법
관련 ManyTo많이 필드 및 ReverseForeignKey에 직접 액세스하면 관련 모델 목록이 반환됩니다.
그러나 쿼리 세트 API의 하위 집합도 표시되므로 상위 모델에서 직접 필터링, 생성, 관련 모델 선택 등을 할 수 있습니다.
겟
작동 원리는 위의 get 함수와 정확히 동일하지만 관계의 다른 끝에서 관련 개체를 검색할 수 있습니다.
!!!QuerysetProxy에 대해 자세히 알아보려면 QuerysetProxy 섹션을 방문하십시오.
얻거나 아무것도
이는 위에서 설명한 것과 정확히 동일하지만 기준과 일치하는 데이터베이스 레코드를 찾을 수 없으면 예외가 발생하는 대신 없음이 반환됩니다.
!!!QuerysetProxy에 대해 자세히 알아보려면 QuerysetProxy 섹션을 방문하십시오.
획득 또는 생성
위의 get_ 또는 _ create 함수와 정확히 동일하지만 관계의 다른 쪽 끝에서 관련 개체를 쿼리하거나 만들 수 있습니다.
!!!QuerysetProxy에 대해 자세히 알아보려면 QuerysetProxy 섹션을 방문하십시오.
먼저
위의 첫 번째 함수와 동일하지만 관계의 다른 쪽 끝에서 관련 개체를 쿼리할 수 있습니다.
!!!QuerysetProxy에 대해 자세히 알아보려면 QuerysetProxy 섹션을 방문하십시오.
모두
위의 모든 기능과 동일하지만 관계의 다른 쪽 끝에서 관련 개체를 쿼리할 수 있습니다.
!!!QuerysetProxy에 대해 자세히 알아보려면 QuerysetProxy 섹션을 방문하십시오.