完整的購物車系統,包含 FastAPI 後端和 SvelteKit 前端。
shopping-svelte/
├── backend/ # FastAPI 後端
│ ├── app/
│ │ ├── models/ # 資料庫模型
│ │ ├── api/ # API 端點
│ │ ├── admin/ # 管理後台
│ │ └── core/ # 核心設定
│ └── static/ # 靜態檔案(上傳的圖片)
└── frontend/ # SvelteKit 前端
└── src/
├── routes/ # 頁面路由
└── lib/ # 共用元件和工具
確保 MySQL 已安裝並運行
安裝依賴:
cd backend
uv sync
這會根據 pyproject.toml 自動建立虛擬環境並安裝所有依賴。
設定環境變數:
cp .env.example .env
編輯 .env 檔案,設定資料庫連線資訊。
初始化資料庫:
uv run python -m app.core.init_db
這會自動建立資料庫和所有必要的資料表。
啟動後端:
uv run uvicorn app.main:app --reload
或使用 uv 執行:
uv run python -m app.main
後端將運行在 http://localhost:8000
進入前端目錄:
cd frontend
安裝依賴(請使用 pnpm,npm 在您的系統上有兼容性問題):
pnpm install
批准構建腳本:
pnpm approve-builds
pnpm install
如果 pnpm 不可用,可以使用 yarn:
yarn install
初始化 SvelteKit(首次運行):
pnpm run sync
啟動開發伺服器:
pnpm dev
前端將運行在 http://localhost:5000
注意:
frontend 目錄下執行這些命令pnpm 而不是 npm(npm 會出現兼容性錯誤)圖片會自動轉換為 WebP 格式,並使用 UUID 命名,儲存在 backend/static/uploads/ 目錄。
產品分類採用三層結構(自關聯),只有第三層分類可以包含產品。
支援訪客購物車(基於 session),登入後可合併購物車內容。