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

출력을 할때 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]

 

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤