[PYTHON/FASTAPI] 우분투 FastAPI 서버 도커 이미지 생성 및 실행하기
■ 우분투에서 FastAPI 서버를 위한 도커 이미지를 생성하고 실행하는 방법을 보여준다. ※ 우분투 버전은 22.04이다. ※ 본인의 사용자 계정 디렉토리는 /home/king이다. 1.
■ 우분투에서 FastAPI 서버를 위한 도커 이미지를 생성하고 실행하는 방법을 보여준다. ※ 우분투 버전은 22.04이다. ※ 본인의 사용자 계정 디렉토리는 /home/king이다. 1.
■ FastAPI 클래스의 get 메소드를 사용해 열거형 값을 전달하는 방법을 보여준다. ▶ main.py
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 |
from enum import Enum from fastapi import FastAPI class Season(str, Enum): spring = "봄" summer = "여름" autumn = "가을" winter = "겨울" fastAPI = FastAPI() @fastAPI.get("/season/{season}") def getSeasonName(season:Season): if season is Season.spring: return {"season" : season, "message" : "테스트 메시지 1"} if season.value == "여름": return {"season" : season, "message" : "테스트 메시지 2"} if season.value == "가을": return {"season" : season, "message" : "테스트 메시지 3"} return {"season" : season, "message" : "테스트 메시지 4"} |
▶ requirements.txt
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 32 33 34 35 36 37 38 39 40 41 |
annotated-types==0.6.0 anyio==4.3.0 certifi==2024.2.2 click==8.1.7 colorama==0.4.6 dnspython==2.6.1 email_validator==2.1.1 fastapi==0.111.0 fastapi-cli==0.0.3 h11==0.14.0 httpcore==1.0.5 httptools==0.6.1 httpx==0.27.0 idna==3.7 itsdangerous==2.2.0 Jinja2==3.1.4 markdown-it-py==3.0.0 MarkupSafe==2.1.5 mdurl==0.1.2 orjson==3.10.3 pip==24.0 pydantic_core==2.18.2 pydantic==2.7.1 pydantic-extra-types==2.7.0 pydantic-settings==2.2.1 Pygments==2.18.0 python-dotenv==1.0.1 python-multipart==0.0.9 PyYAML==6.0.1 rich==13.7.1 shellingham==1.5.4 sniffio==1.3.1 starlette==0.37.2 typer==0.12.3 typing_extensions==4.11.0 ujson==5.10.0 uvicorn==0.29.0 watchfiles==0.21.0 websockets==12.0 |
TestProject.zip
■ FastAPI 클래스의 get 메소드를 사용해 값을 전달하는 방법을 보여준다. ▶ main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from fastapi import FastAPI fastAPI = FastAPI() @fastAPI.get("/") def root(): return {"message" : "Hello World"} @fastAPI.get("/home") def home(): return {"message" : "home"} @fastAPI.get("/home/{name}") def homeName(name:str): return {"name" : name} @fastAPI.get("/home/error/{errorNumber}") def homeError(errorNumber:int): return {"error" : errorNumber} |
▶ requirements.txt
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 32 33 34 35 36 37 38 39 40 41 |
annotated-types==0.6.0 anyio==4.3.0 certifi==2024.2.2 click==8.1.7 colorama==0.4.6 dnspython==2.6.1 email_validator==2.1.1 fastapi==0.111.0 fastapi-cli==0.0.3 h11==0.14.0 httpcore==1.0.5 httptools==0.6.1 httpx==0.27.0 idna==3.7 itsdangerous==2.2.0 Jinja2==3.1.4 markdown-it-py==3.0.0 MarkupSafe==2.1.5 mdurl==0.1.2 orjson==3.10.3 pip==24.0 pydantic_core==2.18.2 pydantic==2.7.1 pydantic-extra-types==2.7.0 pydantic-settings==2.2.1 Pygments==2.18.0 python-dotenv==1.0.1 python-multipart==0.0.9 PyYAML==6.0.1 rich==13.7.1 shellingham==1.5.4 sniffio==1.3.1 starlette==0.37.2 typer==0.12.3 typing_extensions==4.11.0 ujson==5.10.0 uvicorn==0.29.0 watchfiles==0.21.0 websockets==12.0 |
TestProject.zip
■ FastAPI 클래스를 사용해 단순 FastAPI 서버를 만드는 방법을 보여준다. ▶ main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from fastapi import FastAPI fastAPI = FastAPI() @fastAPI.get("/") def root(): return {"message" : "Hello World"} @fastAPI.get("/home") def home(): return {"message" : "home"} |
▶ requirements.txt
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 32 33 34 35 36 37 38 39 40 41 |
annotated-types==0.6.0 anyio==4.3.0 certifi==2024.2.2 click==8.1.7 colorama==0.4.6 dnspython==2.6.1 email_validator==2.1.1 fastapi==0.111.0 fastapi-cli==0.0.3 h11==0.14.0 httpcore==1.0.5 httptools==0.6.1 httpx==0.27.0 idna==3.7 itsdangerous==2.2.0 Jinja2==3.1.4 markdown-it-py==3.0.0 MarkupSafe==2.1.5 mdurl==0.1.2 orjson==3.10.3 pip==24.0 pydantic_core==2.18.2 pydantic==2.7.1 pydantic-extra-types==2.7.0 pydantic-settings==2.2.1 Pygments==2.18.0 python-dotenv==1.0.1 python-multipart==0.0.9 PyYAML==6.0.1 rich==13.7.1 shellingham==1.5.4 sniffio==1.3.1 starlette==0.37.2 typer==0.12.3 typing_extensions==4.11.0 ujson==5.10.0 uvicorn==0.29.0 watchfiles==0.21.0 websockets==12.0 |
▶ 서버 실행 명령
1 2 3 |
uvicorn main:fastAPI --reload |
※
■ FastAPI 패키지를 설치하는 방법을 보여준다 ※ pip install fastapi만 실행하면 uvicorn과 같은 의존성 라이브러리를 추가로 설치해야 한다는 점을 주의한다. 1. 명령