[FastAPI] 출력모델과 상태코드 > IT 기술백서

IT 기술백서

직접 알아내거나 검색하기 귀찮아서 모아 둔 것

python | [FastAPI] 출력모델과 상태코드

본문

출력을 할때 User 모델의 password 를 숨기고 출력하고 싶을 때가 있다.

이런때는 response_model 을 이용하여 출력모델을 지정해주면 된다.


1. 출력모델을 따로 만들어 사용하기

[code]

from fastapi import FastAPI

from pydantic import BaseModel


app = FastAPI()


# 입력모델

class User(BaseModel):

    name: str

    password: str

    age: int

    

# 출력모델

class UserOut(BaseModel):

    name: str

    age: int

    

@app.post("/user", response_model=UserOut)

async def create_user(user: User):

    return user

[/code]


결과

: 출력모델에 password 필드가 없기 때문에 제외되고 출력된다

[code]

{

    "name": "홍길동",

    "age": 18

}

[/code]


2. 포함 또는 제외 필드 지정하기

:출력모델을 따로 만드는게 귀찮을땐 아래 두가지를 사용할 수 있다.


  1) response_model_include: 포함시킬 것 지정

[code]

@app.post("/user", response_model=Item, response_model_include={ "name", "age" })

[/code]


  2) response_model_exclude: 제외시킬 것 지정

[code]

@app.post("/user", response_model=Item, response_model_exclude={ "password" })

[/code]

 

※ 상태코드 출력

[code]

@app.post("/user", status_code=201)

[/code]

상수로 할 수도 있다.

[code]

@app.post("/user", status_code=status.HTTP_201_CREATED)

[/code]

 

댓글 0개

등록된 댓글이 없습니다.

Menu