# Hugging Face Spaces 部署指南 ## 快速部署步驟 ### 1. 建立新的Hugging Face Space 1. 前往 https://huggingface.co/spaces 2. 點擊 "Create new Space" 3. 設定如下: - **Space name**: `travel-list-app` (或您喜歡的名稱) - **License**: MIT - **SDK**: Gradio - **Hardware**: CPU basic (免費) - **Visibility**: Public ### 2. 上傳檔案 將以下檔案上傳到您的Space: ``` 📁 必要檔案清單: ├── app.py # Gradio入口檔案 ├── requirements.txt # Python依賴 ├── README.md # 專案說明 └── src/ ├── main.py # Flask主程式 ├── models/ │ └── travel.py # 資料模型 ├── routes/ │ └── travel.py # API路由 ├── static/ # 前端檔案 │ ├── index.html │ └── assets/ └── database/ └── app.db # SQLite資料庫檔案 ``` ### 3. 使用Git上傳 (推薦) ```bash # 1. 複製您的Space repository git clone https://huggingface.co/spaces/YOUR_USERNAME/SPACE_NAME cd SPACE_NAME # 2. 複製專案檔案 cp -r /path/to/travel_list_backend/* . # 3. 提交並推送 git add . git commit -m "Deploy travel list app" git push ``` ### 4. 檢查部署 - 上傳完成後,Hugging Face會自動開始建置 - 在Space的 "Logs" 標籤查看建置進度 - 建置成功後,應用程式將在Space URL上可用 ## 檔案說明 ### app.py - Hugging Face Spaces的入口檔案 - 使用Gradio包裝Flask應用程式 - 在背景執行Flask服務 ### requirements.txt - 包含所有必要的Python依賴 - 包括Flask、SQLAlchemy、CORS、Gradio等 ### src/main.py - Flask應用程式的主要入口 - 設定路由、資料庫、CORS等 ### src/models/travel.py - 定義TravelList和TravelItem資料模型 - 使用SQLAlchemy ORM ### src/routes/travel.py - 定義所有API端點 - 處理CRUD操作 ### src/static/ - 包含建置好的React前端檔案 - 由Flask直接提供服務 ## 常見問題 ### Q: 部署後無法存取? A: 檢查Logs標籤是否有錯誤訊息,確保所有檔案都已正確上傳。 ### Q: 資料庫錯誤? A: 確保database/app.db檔案已上傳,或讓應用程式自動建立。 ### Q: 前端無法載入? A: 確保static/目錄包含所有建置檔案,特別是index.html。 ### Q: API呼叫失敗? A: 檢查CORS設定,確保前端使用相對路徑呼叫API。 ## 測試清單 部署後請測試以下功能: - [ ] 首頁正常載入 - [ ] 可以建立新清單 - [ ] 可以使用代碼進入清單 - [ ] 可以新增旅遊項目 - [ ] 核取方塊功能正常 - [ ] 完成項目移到底部 - [ ] 編輯和刪除功能正常 - [ ] 多個瀏覽器標籤同步更新 ## 支援 如有問題,請檢查: 1. Hugging Face Space的Logs標籤 2. 瀏覽器開發者工具的Console 3. 確保所有檔案都已正確上傳