Movatterモバイル変換


[0]ホーム

URL:


콘텐츠로 이동
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

추가 데이터 자료형

🌐 AI와 사람이 함께한 번역

이 번역은 사람의 안내를 받아 AI가 만들었습니다. 🤝

원문의 의미를 오해하거나 부자연스러워 보이는 등 오류가 있을 수 있습니다. 🤖

AI LLM을 더 잘 안내하는 데 도움을 주세요.

영문 버전

지금까지 일반적인 데이터 자료형을 사용했습니다. 예를 들면 다음과 같습니다:

  • int
  • float
  • str
  • bool

하지만 더 복잡한 데이터 자료형 또한 사용할 수 있습니다.

그리고 지금까지와 같은 기능들을 여전히 사용할 수 있습니다.

  • 훌륭한 편집기 지원.
  • 들어오는 요청의 데이터 변환.
  • 응답 데이터의 데이터 변환.
  • 데이터 검증.
  • 자동 어노테이션과 문서화.

다른 데이터 자료형

아래의 추가적인 데이터 자료형을 사용할 수 있습니다:

  • UUID:
    • 표준 "범용 고유 식별자"로, 많은 데이터베이스와 시스템에서 ID로 사용됩니다.
    • 요청과 응답에서str로 표현됩니다.
  • datetime.datetime:
    • 파이썬의datetime.datetime.
    • 요청과 응답에서2008-09-15T15:53:00+05:00와 같은 ISO 8601 형식의str로 표현됩니다.
  • datetime.date:
    • 파이썬의datetime.date.
    • 요청과 응답에서2008-09-15와 같은 ISO 8601 형식의str로 표현됩니다.
  • datetime.time:
    • 파이썬의datetime.time.
    • 요청과 응답에서14:23:55.003와 같은 ISO 8601 형식의str로 표현됩니다.
  • datetime.timedelta:
    • 파이썬의datetime.timedelta.
    • 요청과 응답에서 전체 초(seconds)의float로 표현됩니다.
    • Pydantic은 "ISO 8601 time diff encoding"으로 표현하는 것 또한 허용합니다.더 많은 정보는 문서를 확인하세요.
  • frozenset:
    • 요청과 응답에서set와 동일하게 취급됩니다:
      • 요청 시, 리스트를 읽어 중복을 제거하고set로 변환합니다.
      • 응답 시,setlist로 변환됩니다.
      • 생성된 스키마는 (JSON 스키마의uniqueItems를 이용해)set의 값이 고유함을 명시합니다.
  • bytes:
    • 표준 파이썬의bytes.
    • 요청과 응답에서str로 취급됩니다.
    • 생성된 스키마는 이것이binary "형식"의str임을 명시합니다.
  • Decimal:
    • 표준 파이썬의Decimal.
    • 요청과 응답에서float와 동일하게 다뤄집니다.
  • 여기에서 모든 유효한 Pydantic 데이터 자료형을 확인할 수 있습니다:Pydantic 데이터 자료형.

예시

위의 몇몇 자료형을 매개변수로 사용하는경로 처리 예시입니다.

fromdatetimeimportdatetime,time,timedeltafromtypingimportAnnotatedfromuuidimportUUIDfromfastapiimportBody,FastAPIapp=FastAPI()@app.put("/items/{item_id}")asyncdefread_items(item_id:UUID,start_datetime:Annotated[datetime,Body()],end_datetime:Annotated[datetime,Body()],process_after:Annotated[timedelta,Body()],repeat_at:Annotated[time|None,Body()]=None,):start_process=start_datetime+process_afterduration=end_datetime-start_processreturn{"item_id":item_id,"start_datetime":start_datetime,"end_datetime":end_datetime,"process_after":process_after,"repeat_at":repeat_at,"start_process":start_process,"duration":duration,}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromdatetimeimportdatetime,time,timedeltafromuuidimportUUIDfromfastapiimportBody,FastAPIapp=FastAPI()@app.put("/items/{item_id}")asyncdefread_items(item_id:UUID,start_datetime:datetime=Body(),end_datetime:datetime=Body(),process_after:timedelta=Body(),repeat_at:time|None=Body(default=None),):start_process=start_datetime+process_afterduration=end_datetime-start_processreturn{"item_id":item_id,"start_datetime":start_datetime,"end_datetime":end_datetime,"process_after":process_after,"repeat_at":repeat_at,"start_process":start_process,"duration":duration,}

함수 안의 매개변수가 그들만의 데이터 자료형을 가지고 있으며, 예를 들어, 다음과 같이 날짜를 조작할 수 있음을 참고하십시오:

fromdatetimeimportdatetime,time,timedeltafromtypingimportAnnotatedfromuuidimportUUIDfromfastapiimportBody,FastAPIapp=FastAPI()@app.put("/items/{item_id}")asyncdefread_items(item_id:UUID,start_datetime:Annotated[datetime,Body()],end_datetime:Annotated[datetime,Body()],process_after:Annotated[timedelta,Body()],repeat_at:Annotated[time|None,Body()]=None,):start_process=start_datetime+process_afterduration=end_datetime-start_processreturn{"item_id":item_id,"start_datetime":start_datetime,"end_datetime":end_datetime,"process_after":process_after,"repeat_at":repeat_at,"start_process":start_process,"duration":duration,}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromdatetimeimportdatetime,time,timedeltafromuuidimportUUIDfromfastapiimportBody,FastAPIapp=FastAPI()@app.put("/items/{item_id}")asyncdefread_items(item_id:UUID,start_datetime:datetime=Body(),end_datetime:datetime=Body(),process_after:timedelta=Body(),repeat_at:time|None=Body(default=None),):start_process=start_datetime+process_afterduration=end_datetime-start_processreturn{"item_id":item_id,"start_datetime":start_datetime,"end_datetime":end_datetime,"process_after":process_after,"repeat_at":repeat_at,"start_process":start_process,"duration":duration,}

[8]ページ先頭

©2009-2026 Movatter.jp