콘텐츠로 이동

필드

12가지 기본 모델 필드 유형과 모델 간의 관계를 설정하기 위한 특수 ForeignKey 및 ManyTo다양하다 필드가 있습니다.

!!!팁 ForeignKey 및 ManyTo많이 필드 확인 관계에 대한 설명.

각 필드에는 Pydantic 모델을 생성하는 데 사용되는 SQLALCHEMY 열 클래스와 Python 유형이 할당됩니다.

필드 유형

끈

String(max_length: int, min_length: int = None, regex: str = None,) 필요한 max_ 길이 매개 변수가 있습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 끈
  • 유형(피단틱용): str

!!!팁 다른 매개 변수에 대한 지침은 Pydantic 설명서를 참조하십시오.

텍스트

텍스트()에 필요한 매개 변수가 없습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 텍스트
  • 유형(피단틱용): str

!!!팁 다른 매개 변수에 대한 지침은 Pydantic 설명서를 참조하십시오.

부울

부울()에는 필수 매개 변수가 없습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 부울
  • 유형(피단틱용): bool

정수

Integer(minimum: int = None, maximum: int = None, multiple_of: int = None) 필수 매개 변수가 없습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 정수
  • 유형(피단틱용): int

!!!팁 다른 매개 변수에 대한 지침은 Pydantic 설명서를 참조하십시오.

큰 정수

BigInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) 필수 매개 변수가 없습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 더 큰 관심
  • 유형(피단틱용): int

!!!팁 다른 매개 변수에 대한 지침은 Pydantic 설명서를 참조하십시오.

작은 정수

SmallInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) 필수 매개 변수가 없습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 작은 정수
  • 유형(피단틱용): int

!!!팁 다른 매개 변수에 대한 지침은 Pydantic 설명서를 참조하십시오.

플로트

Float(minimum: float = None, maximum: float = None, multiple_of: int = None) 필수 매개 변수가 없습니다.

  • Sqlalchemy 열: sqlalchemy. 플로트
  • 유형(피단틱용): 플로트

!!!팁 다른 매개 변수에 대한 지침은 Pydantic 설명서를 참조하십시오.

십진법

Decimal(minimum: float = None, maximum: float = None, multiple_of: int = None, precision: int = None, scale: int = None, max_digits: int = None, decimal_places: int = None) 필수 파라미터 없음

길이 및 정밀도 파라미터 또는 max \ _ 자리 및 소수 \ _ 자리를 사용할 수 있습니다.

  • Sqlalchemy 열: sqlalchemy입니다. DECIMAL
  • 유형(피단틱의 경우): 십진수. 십진수

!!!팁 다른 매개 변수에 대한 지침은 Pydantic 설명서를 참조하십시오.

날짜

날짜()에 필요한 매개 변수가 없습니다.

  • Sqlalchemy 열:sqlalchemy.Date
  • 유형(피단틱의 경우):datetime.date

시간

시간(시간대: bool = 거짓) 필수 파라미터가 없습니다.

시간대 인식 데이터베이스 열에 대해 시간대 = 참을 통과할 수 있습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 시간
  • 유형(피단틱의 경우): datetime

날짜 시간

DateTime(timezone: bool = False) 필수 매개 변수가 없습니다.

시간대 인식 데이터베이스 열에 대해 시간대 = 참을 통과할 수 있습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 날짜 시간
  • 유형(피단틱의 경우): datetime

제이슨

JSON()에는 필수 매개 변수가 없습니다.

  • Sqlalchemy 열: sqlalchemy. JSON
  • 유형(피단틱의 경우): 피단틱. 제이슨

큰 이진 파일

큰 이진수(max_ 길이)에는 필요한 max_ 길이 매개 변수가 있습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 큰 이진법
  • 유형(피단틱용): 바이트

큰 이진 길이는 일부 백엔드(즉, MySQL)에서 필드의 크기를 결정하는 데 사용되며, 다른 백엔드에서는 단순히 무시되지만 ormar에서는 항상 필요합니다. 파일/바이트의 최대 크기(바이트)여야 합니다.

큰 바이너리에는 옵션인 represent_as_base64_str: bool = False 플래그도 있습니다. Truweathermar로 설정하면 바이트 값이 Base64 디코딩된 문자열로 자동 변환되며 Base64 인코딩 문자열을 전달하여 값을 설정할 수도 있습니다.

이렇게 하면 값이 UTF-8과 호환되지 않더라도 API를 통해 값을 설정할 수 있습니다. 그렇지 않으면 JSON 변환 중에 실패합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
베이스64 가져오기
... # 간결성을 위해 건너뛴 기타 수입


base_ormar_config = ormar. OrmarConfig (
    메타데이터 = 메타데이터
    데이터베이스 = 데이터베이스
)


클래스 LargeBinaryStr(ormar. 모델):
    ormar_config = base_ormar_config (tablename = "my_str_blobs")

    ID: int = ormar. 정수(prial_key = 참)
    test_: str = ormar. 큰 이진 (
        max_long=100000, _as_base64_str=참
    )

# 비 utf-8 호환 값 설정 - json에서 api(i.e.fast api)로 전달할 수 있습니다.
항목 = LargeBinaryStr (test_ = base64.b64encode (b "\xc3\x28") .decode ())

주장 항목. test_==base64.b64encode(b"\xc3\x28").decode()

# 기본 값은 여전히 바이트이며 이렇게 저장됩니다.
주장 항목. __dict__["test_"] ==b "\xc3\x28"

범용 고유 장치 식별자

UUID(uuid_format: str = 'hex') 필수 매개 변수가 없습니다.

  • Sqlalchemy 열: ormar. sqlalchemy를 기반으로 한 UUID. CHAR(36) 또는 sqlalchemy. CHAR(32) 필드(각각 문자열 또는 16진수 형식)
  • 유형(피단틱용): uuid. UUID

uuid_ 형식 매개 변수는 "16진수"(기본값) 또는 "문자열" 값을 허용합니다.

형식에 따라 데이터베이스에 32자 또는 36자가 사용됩니다.

샘플:

  • "16진수" 형식 값 = c616ab438cce49dbbf4380d109251dce (캐릭터(32))
  • "문자열" 값 = c616ab43-8cce-49db-bf43-80d109251dce (캐릭터(36))

로드 시 항상 파이썬 UUID이므로 비교하고 두 형식 간의 값을 비교할 수 있습니다.

열거

ormar ->에서 열거를 사용하는 두 가지 방법이 있습니다. 하나는 sqlalchemy의 전용 열거 필드를 사용하는 것입니다. 열 유형을 열거하고 다른 하나는 ormar의 모든 필드에서 선택을 설정하는 것입니다.

열거형 필드는 데이터베이스 방언별 열거형 열 유형(사용 가능한 경우)을 사용하지만 이 필드 유형을 사용할 수 없는 경우 다시 varchar로 이동합니다.

선택 옵션은 항상 선택한 데이터베이스 필드 유형을 따릅니다.

따라서 사용할 백엔드와 열거 필드에서 사용할 열/데이터 유형에 따라 달라집니다.

열거 - 필드

Enum(enum \ _ 클래스 = Type \ [ Enum \ ])에는 필요한 enum \ _ 클래스 인수가 있습니다.

  • Sqlalchemy 열: sqlalchemy입니다. 열거
  • 유형(피단틱의 경우): 유형[에넘]