【ときどきpython】fastapiの実行環境を導入する
詳しいことは公式を見ておけばなんとかなる
https://fastapi.tiangolo.com/ja/
パッケージ
poetryインストール
環境を作る
code:poetry environment
# プロジェクト作成、パッケージインストール
poetry new fastapi-tutorial
cd fastapi-tutorial
poetry add fastapi uvicorn
# 環境に入る
poetry shell
コードを書く
code:app.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
実行
code:run fastapi
uvicorn app:app --host=0.0.0.0 --reload
--reload:コードの変更を自動反映
APIドキュメント
code:api document
http://<fastapiサーバ>:<ポート>/docs
http://<fastapiサーバ>:<ポート>/redoc
docker
パクらせていただきました。感謝
https://zenn.dev/satonopan/articles/c4e6d55a64da0c
poetryとかマルチステージビルドは使ってない
code:Dockerfile
FROM python:3.11.6-slim-bookworm
WORKDIR /app
RUN apt-get update
RUN apt-get upgrade -y && apt-get install -y \
vim \
less \
curl \
unzip
COPY . /app
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install -r requirements.txt
CMD "uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "8080"
code:docker-compose.yaml
version: "3"
services:
api:
container_name: "fastapi"
volumes:
- ./app:/app
build: .
ports:
- 8080:8080
code:requirements.txt
fastapi
uvicorn
code:app/main.py
さっきと同じ
ちなみにuvicornってなに?
アッバーコーンと読むのね...
https://zenn.dev/nameless_sn/articles/fastapi_tutorial_for_rest
ときどきpython