티스토리 뷰

  1. 라우터 (Router)
  • 여러 엔드포인트를 관리하는 역할
    • 엔드포인트: 라우터가 처리하는 특정 경로(path) 와 메서드
    • 메서드: get, post 등 http메서드
  • URL 요청이 들어왔을때 어디로 보낼지 결정하는 “지도” 역할
    • /home → 홈 화면 표시
from fastapi import FastAPI

app = FastAPI()

# 여기서 app은 "라우터"
@app.get("/home")  # "엔드포인트" 정의
def home():  # 엔드포인트가 실행할 코드
    return {"message": "Welcome Home!"}

  • 라우터 분리
from fastapi import FastAPI, APIRouter

router = APIRouter() # 별도로 관리되는 라우터

@router.get("/home") # 라우터안에 정의된 엔드포인트
def home():
    return {"message": "Welcome Home!"}

app = FastAPI()
app.include_router(router)  # APIRouter를 FastAPI에 등록

  • 마운트
    • 웹 애플리케이션에서 특정 기능(라우터)을 특정 경로에 연결해서 관리
  1. AJAX와 form
  • AJAX
    • 비동기적, fetch, XMLHttpRequest 등
    • 페이지를 리로드하지 않고 필요한 데이터만 받아 화면에 반영
fetch('/api/data')
  .then(response => response.json())
  .then(data => console.log(data)); // 데이터만 갱신
  • HTML form
    • 동기적, 전송시 페이지 새로고침 발생
    • 사용자가 정보를 입력할 수 있는 html요소
    • 로그인, 회원가입 같은 곳에서 자주 사용.
<form action="/submit" method="POST">
    <input type="text" name="username">
    <button type="submit">Submit</button>
</form>
  1. 유효성 검사와 예외처리
  • 유효성 검사
    • 사용자가 입력한 데이터가 올바른지(규칙에 맞는지) 확인
    • 문제가 생기기 전 확인
    from pydantic import BaseModel, EmailStr
    
    class User(BaseModel):
        email: EmailStr
        age: int
    
    user = User(email="hello@example.com", age=25)  # 유효성 검사 통과!
    
  • 예외처리
    • 예상치 못한 오류가 발생시, 프로그램이 중단되지 않게 처리
    try:
        result = 10 / 0  # ZeroDivisionError 발생
    except ZeroDivisionError:
        print("나누기에서 오류가 발생했습니다!")
    
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
26 27 28 29 30 31
글 보관함