Pydantic에서 필수 필드를 정의하는 방법

Pydanticeseo Pilsu Pildeuleul Jeong Uihaneun Bangbeob



필수 필드는 데이터 모델에 있어야 하는 필드입니다. 이러한 필드는 필수적이며 제대로 작동하거나 프로세스를 완료하는 데 필요하므로 비워 둘 수 없습니다. 필수 필드에 값이 제공되지 않으면 Pydantic은 ValueError 예외를 발생시킵니다. 필드는 다양한 방법으로 필수 필드로 정의될 수 있습니다. 그러나 Pydantic은 기본적으로 모든 데이터 모델 필드를 '필수'로 설정합니다. 이 글은 Pydantic에서 필수 필드를 정의하는 방법을 보여줍니다. 또한 필수 필드를 사용하는 데 유용한 몇 가지 팁에 대해서도 논의하겠습니다.

필수 필드 사용의 이점

Pydantic에서 필수 필드를 사용하면 여러 가지 이점이 있습니다.

  • 데이터 완전성 보장: 필수 필드는 데이터 모델이 완전하고 유효한지 확인하는 데 도움이 됩니다. 이렇게 하면 코드 및 데이터 처리 오류를 방지하는 데 도움이 됩니다.
  • 악의적인 입력 방지: 필수 필드를 사용하여 악의적인 사용자가 시스템에 잘못된 데이터를 삽입하는 것을 방지할 수도 있습니다.
  • 코드를 더 읽기 쉽게 만들기: 필수 필드를 사용하면 코드에 대한 이해도와 가독성을 높일 수 있습니다.

Pydantic에서 필수 필드를 정의하는 방법

Pydantic에는 필드를 필수 필드로 정의하는 세 가지 방법이 있습니다. 각각을 자세히 살펴보겠습니다.







주석 사용

Pydantic에서 필수 필드를 정의하는 가장 간단한 방법은 주석을 사용하는 것입니다. 구문 메타데이터의 일종인 주석을 사용하면 클래스의 변수 및 속성에 대한 세부 정보를 추가할 수 있습니다. Pydantic에서 주석은 필드의 예상 데이터 유형을 나타내는 데 사용되며 기본적으로 필드를 선택사항으로 설정할 때까지 주석이 달린 모든 필드는 필수로 간주됩니다.



~에서 피단틱한 수입 기본 모델

수업 사람 ( 기본 모델 ) :

전체_이름: str

키: 뜨다

이메일 : str

이 예에서는 full_name, height, email이 모두 필수 필드입니다. 이러한 필드에 대한 값을 제공하지 않고 Person 클래스의 인스턴스를 생성하면 Pydantic은 필수 필드가 누락되었음을 나타내는 ValidationError를 발생시킵니다.

노력하다 :

사람_데이터 = {

'키' : 5.8 ,

}

사람 = 사람 ( **사람_데이터 )

제외하고 값오류 ~처럼 그것은:

인쇄 ( 그것은 )

이 예에서는 full_name 필드가 누락되었으며 height 필드도 누락되었습니다. 이 두 필드는 모두 필수이며 ValidationError는 누락된 필드에 대한 명확한 정보를 제공합니다.

줄임표 사용(…)

Pydantic에서 요구되는 필드를 선언하는 또 다른 방법은 줄임표( ). 이는 필수 필드를 표시하기 위해 Pydantic에서 제공하는 명시적인 접근 방식입니다.

~에서 피단틱한 수입 기본 모델

수업 제품 ( 기본 모델 ) :

이름: str = ...

가격 : 뜨다 = ...

설명 : str = ...

이 예에서는 이름, 가격 및 설명 필드가 모두 줄임표를 사용하여 필요에 따라 정의됩니다. 이 메서드를 사용하면 Product 클래스의 인스턴스를 생성할 때 특정 필드를 건너뛸 수 없음을 명시적이고 볼 수 있습니다.

노력하다 :

제품_데이터 = {

'이름' : '휴대폰' ,

'설명' : '16GB RAM을 탑재한 스마트폰' ,

}

제품 = 제품 ( **제품_데이터 )

제외하고 값오류 ~처럼 그것은:

인쇄 ( 그것은 )


이 예에서는 가격 필드가 누락되었으며 ValidationError는 누락된 필수 필드를 명확하게 나타냅니다.

필드 기능 사용

Pydantic 모듈의 Field 기능은 필드 검증 및 메타데이터를 사용자 정의하기 위한 추가 기능을 제공합니다. 필드 기능을 사용하여 필수 필드를 선언하고 추가 유효성 검사 규칙을 적용할 수 있습니다.

필드 기능을 사용하여 필수 필드를 정의하는 방법은 다음과 같습니다.

~에서 피단틱한 수입 기본 모델 , 필드

수업 주소 ( 기본 모델 ) :

거리: str = 필드 ( ... , 설명 = '주소' )

도시: str = 필드 ( ... )

우편 번호: str = 필드 ( ... )

이 예에서는 필드 함수를 사용하여 추가 유효성 검사 규칙 및 설명과 함께 필수 필드 거리, 도시 및 우편번호를 정의합니다. 줄임표 '...'는 해당 필드가 필수 필드로 정의되어야 함을 나타냅니다.

노력하다 :

주소_데이터 = {

'거리' : '111 메인 스트리트' ,

'우편 번호' : '123456'

}

주소 = 주소 ( **주소_데이터 )

제외하고 값오류 ~처럼 그것은:

인쇄 ( 그것은 )

이 예에서는 도시 필드가 누락되었으며 ValidationError는 누락된 필수 필드에 대한 정보를 제공합니다.

필수 필드는 제약 조건 및 유형과 같은 다른 Pydantic 기능을 사용하여 유효성을 검사할 수 있습니다. 예를 들어 이름 필드가 5자 이상의 문자열이어야 한다고 지정할 수 있습니다. 필드 데코레이터를 사용하여 필수 필드의 동작을 사용자 정의할 수 있습니다. 예를 들어 필드의 기본값을 지정하거나 필드에 값이 지정되지 않은 경우 표시할 메시지를 지정할 수 있습니다.

여러 방법을 사용하여 단일 Pydantic 모델에서 필수 필드 정의

단일 Pydantic 모델 내에서 필수 필드를 정의하는 여러 방법을 사용할 수 있습니다. 예를 들어 일부 필드에 줄임표( ) 기타의 경우에는 Field 기능을 사용하여 추가 사용자 정의가 가능합니다. Pydantic을 사용하면 코드 구성 및 가독성 기본 설정에 가장 적합한 접근 방식을 선택할 수 있습니다. 다음 예를 고려하십시오.

~에서 피단틱한 수입 기본 모델 , 필드

수업 직원 ( 기본 모델 ) :

이름: str

부서: str =

샐러리: 뜨다 = 필드 ( )

이 예에서는 모든 필드를 사용해야 합니다. 우리는 필수 필드를 정의하기 위해 세 가지 방법을 사용했습니다. 이름 필드는 주석을 사용하고 부서는 줄임표를 사용하며 급여는 필드 함수를 사용합니다.

필수 필드 사용 팁

원활하고 유지 관리가 가능한 코드를 생성하려면 Pydantic에서 필수 필드를 정의할 때 몇 가지 모범 사례를 따르는 것이 필수적입니다. 다음 팁은 Pydantic에서 필수 필드를 정의하는 데 도움이 될 것입니다:

  1. 명확하고 설명이 포함된 필드 이름을 사용하세요. : 필드의 목적을 명확하게 나타내는 의미 있는 이름을 선택하십시오. 이를 통해 다른 개발자는 어떤 데이터가 필요한지 알 수 있으며 필수 필드가 누락될 가능성이 줄어듭니다.
  2. 유익한 필드 설명 제공 : 필드 기능을 사용하여 필수 필드를 정의하는 경우 데이터의 목적과 예상되는 형식을 설명하는 설명을 제공하세요.
  3. 그룹 관련 분야 : 데이터 모델에 필드 수가 많은 경우 관련 필드를 중첩 구조로 그룹화하는 것이 좋습니다. 이렇게 하면 코드를 더 쉽게 읽을 수 있고 필수 필드를 더 쉽게 관리할 수 있습니다.
  4. 필수 필드에 맞춤 메시지를 사용하세요. 기본적으로 Pydantic은 필수 필드에 값이 제공되지 않으면 ValueError 예외를 발생시킵니다. 필드 데코레이터에 메시지 인수를 지정하여 오류 메시지를 맞춤설정할 수 있습니다.

결론

Pydantic은 기본적으로 필요에 따라 필드를 만듭니다. 그러나 해당 필드를 필수 필드로 명시적으로 정의할 수 있습니다. 필요에 따라 필드를 선언하면 데이터 모델이 정확하고 완전하며 요구 사항에 부합하는지 확인할 수 있습니다. 이 게시물에서 우리는 Pydantic에서 필수 필드를 정의하는 세 가지 방법, 즉 주석, 줄임표(…) 및 필드 기능을 다루었습니다. 또한 데이터 모델에서 필드를 효과적으로 지정할 수 있도록 필수 필드 사용에 대한 몇 가지 권장 사례를 살펴보았습니다.