반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 티스토리챌린지
- VirtualBox
- ReactNative
- react
- TensorFlow
- xcode
- vsCode
- IOS
- 개발
- 맥
- 네트워크
- pydantic
- node
- androidstudio
- localserver
- build
- Android
- PYTHON
- unittest
- linux
- MachineLearning
- Chrome
- centos
- 오블완
- 센토스
- fastapi
- webpack
- 리눅스
- MAC
Archives
- Today
- Total
로메오의 블로그
FastAPI 서버 구축 본문
반응형
버전확인
$ python3 --version
Python 3.11.2
가상환경구축
$ python3 -m venv myproject
$ source myproject/bin/activate ## 가상환경 진입
$ deactivate ## 가상환경 종료

fastapi 설치
$ pip install fastapi uvicorn
Uvicorn: fastapi 실행도구
코드작성
$ cd myproject
$ touch main.py
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def road_root():
return {"message": "Hello, FastAPI!"}
서버실행
$ uvicorn main:app --reload
브라우저 접속
http://localhost:8000/

Swagger 문서

router 설정
$ mkdir routers
$ touch routers/users.py
main.py
from fastapi import FastAPI
from routers import users
app = FastAPI()
app.include_router(users.router)
users.py
from fastapi import APIRouter
router = APIRouter(
prefix="/users",
tags=["users"],
)
@router.get("/")
def get_users():
return [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]
@router.get("/{user_id}")
def get_user(user_id: int):
return {"id": user_id, "name": f"User{user_id}"}
http://localhost:8000/users/

http://localhost:8000/users/2

Swagger 문서

Pydantic 설정
$ mkdir schemas
$ touch schemas/user.py
schemas/user.py
# schemas/user.py
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
routers/users.py
from fastapi import APIRouter
from typing import List
from schemas.user import User
router = APIRouter(
prefix="/users",
tags=["users"],
)
@router.get("/", response_model=List[User])
def get_users():
return [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
@router.get("/{user_id}", response_model=User)
def get_user(user_id: int):
return {"id": user_id, "name": f"User{user_id}"}
반응형
'Backend > Python & Blockchain' 카테고리의 다른 글
| TensorFlow 사진 분류기 (7) | 2025.07.26 |
|---|---|
| Synology NAS에 python flask 웹서버 구축 (2) | 2025.07.18 |
| Python3 SSL: CERTIFICATE_VERIFY_FAILED 해결하기 - Mac (0) | 2024.02.02 |
| [Python] requests (0) | 2022.11.17 |
| [Python] setInterval 구현 (0) | 2022.11.17 |
Comments