iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

接下來我都會用 Docker 來實作,流程如下:

  1. 首先你的電腦需要安裝 Docker 桌機版
  2. 撰寫 Dockerfile 來 build image
FROM python:3.9.5-slim-buster
RUN apt-get update \
    && apt-get -y install libpq-dev gcc vim poppler-utils

# set work directory
WORKDIR /usr/src/app

COPY ./requirements.txt /code/requirements.txt
RUN pip install -U pip
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

COPY . .
  1. 定義 FastAPI main.py
def get_application():
    app = FastAPI()
    app.openapi = custom_openapi

    origins = ["*"]

    app.add_middleware(
        CORSMiddleware,
        allow_origins=origins,
        allow_credentials=True,
        allow_methods=["*"],
        allow_headers=["*"],
    )

    app.include_router(docs.router)
    app.include_router(test.router, tags=["測試"], prefix="/hello")
    app.mount("/static", StaticFiles(directory="static"), name="static")

    return app

app = get_application()
  1. 寫 FastAPI 的路由
from fastapi import APIRouter

router = APIRouter()

@router.get("", summary="Hello World!")
async def hello_world():
    """Hello World"""
    return "Hello World"
  1. 利用 docker-compose 指令來起 Docker 服務
version: '3'

services:
    fastapi:
        container_name: fastapi
        build: "."
        volumes:
          - .:/usr/src/app
        ports:
          - "5000:5000"
        command: uvicorn app.main:app --host 0.0.0.0 --port 5000 --reload
docker-compose up -d
  1. 打開 swagger doc 檢查

位置是 http://localhost:5000/docs
https://ithelp.ithome.com.tw/upload/images/20230923/20114380aSXYhPPdqU.png

詳細程式碼參考連結


上一篇
Day 11:查詢發票登錄紀錄
下一篇
Day 13:用 Postgres 設計
系列文
透過 python 建立發票系統 - 自己的發票自己查30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言