해결된 질문
작성
·
172
0
from fastapi import FastAPI, Body
from pydantic import BaseModel # 쉽게 requestbody(입력받는 함수인자) 처리
app = FastAPI() # 앱이란 객체에 api연결해서 서버를 띄우면 HTTP요청 보낼 수 있다.
@app.get("/")
def health_check_handler():
return {"ping": "pong"}
todo_data = {
1: {
"id": 1,
"contests": "실전! FastAPI 섹션 0 수강",
"is_done": False,
},
2: {
"id": 2,
"contests": "실전! FastAPI 섹션 1 수강",
"is_done": False,
},
3: {
"id": 3,
"contests": "실전! FastAPI 섹션 2 수강",
"is_done": False,
}
}
@app.get("/todos")
def get_todos_handler(order: str | None = None):
ret = list(todo_data.values())
if order and order == "DESC":
return ret[::-1]
return ret
@app.get("/todos/{todo_id}")
def get_todo_handler(todo_id: int):
return todo_data.get(todo_id, {})
class CreateTodoRequest(BaseModel):
id: int
contests: str
is_done: bool
@app.post("/todos")
def create_todo_handler(request: CreateTodoRequest):
todo_data[request.id] = request.dict()
return todo_data[request.id]
@app.patch("/todos/{todo_id}")
def update_todo_handler(
todo_id: int,
is_done: bool = Body(..., embed=True),
):
todo = todo_data.get(todo_id)
if todo:
todo["is_done"] = is_done
return todo
return {}
해당 코드까지 진행했고, (todos) PS C:\Users\yhkim\inflern_project\todos\src> uvicorn main:app --reload로 실행했는데 어느순간부터 웹페이지가 수정사항이 적용되지 않습니다.
답변 2
0
안녕하세요. Ctrl + C
로 서버를 종료했다가 다시 실행 해보시겠어요?
아니면 다른 에러로 인해서 reload가 동작하지 않을 수도 있으니 콘솔 창에 출력되는 에러메시지를 확인 부탁드립니다.
0
안녕하세요, 인프런 AI 인턴입니다.
YH K님께서 제공해주신 코드와 설명을 바탕으로, 웹페이지에서 수정 사항이 적용되지 않는 문제에 대해 알아보겠습니다. 코드 상에 눈에 띄는 큰 문제는 보이지 않으나, 문제의 원인은 여러 가지가 될 수 있습니다.
캐시 문제: 브라우저에서 이전 버전의 캐시된 내용을 로드하고 있는 경우가 있습니다. 웹페이지 새로고침 시에는 Ctrl + F5(Windows) 또는 Command + Shift + R(Mac)을 사용해 강제 새로고침을 시도해 보세요.
Hot Reload 문제: FastAPI는 --reload
옵션을 사용하여 개발 중인 코드의 변경사항이 자동으로 적용되도록 할 수 있습니다. 하지만 가끔 올바르게 작동하지 않을 수 있습니다. 이 경우, uvicorn 서버를 완전히 종료한 후 다시 시작해보세요.
오타 및 문법 오류: 코드 내에 오타나 미세한 문법 오류가 있을 수 있으니, 이를 철저히 확인하는 것이 좋습니다. 예를 들어, 여러분의 코드에서 "contests"
라는 항목은 아마도 "contents"
가 되어야 할 것 같습니다.
이와 유사한 문제를 다루는 질문 중 하나가 있으나, 해당 질문은 ORM과 HTTP 응답 처리에 관한 내용입니다:
질문에 직접적인 답변이 없으므로, 위의 추천사항을 바탕으로 문제를 해결해 보시길 바랍니다. 만약 이후에도 문제가 지속된다면, 보다 구체적인 오류 메시지 또는 서버 로그를 함께 제공해 주시면, 다른 해결 방안을 모색하는 데 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.