반응형
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
- localserver
- linux
- Android
- pydantic
- xcode
- ReactNative
- 오블완
- 맥
- VirtualBox
- 티스토리챌린지
- PYTHON
- 센토스
- react
- TensorFlow
- Chrome
- androidstudio
- unittest
- 개발
- webpack
- fastapi
- vsCode
- 네트워크
- centos
- MAC
- 리눅스
- MachineLearning
- node
- IOS
- build
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' 카테고리의 다른 글
Python3 SSL: CERTIFICATE_VERIFY_FAILED 해결하기 - Mac (0) | 2024.02.02 |
---|---|
[Python] requests (0) | 2022.11.17 |
[Python] setInterval 구현 (0) | 2022.11.17 |
[Python] Selenium으로 Crawling하기 (0) | 2020.02.19 |
[Python] Python Crawling 웹 크롤링 (0) | 2020.02.18 |
Comments