name: Update Backend description: Instructions for updating the Python backend and leaderboard database.
Update Backend
此技能指導如何維護 "Pikachu Snake" 的後端服務 (server.py) 與資料庫 (leaderboard.db)。
檔案結構
server.py: Flask 伺服器,提供靜態檔案與 API。leaderboard.db: SQLite 資料庫,儲存排行榜資料。
常用操作
1. 修改 API
若需新增 API (例如 GET /api/status):
- 在
server.py中使用@app.route定義新路由。@app.route('/api/status', methods=['GET']) def status(): return jsonify({'status': 'ok'}) - 若需接收 JSON 資料,使用
request.json。
2. 修改資料庫 Schema
若需在 scores 表格中新增欄位 (例如 max_combo):
- 備份: 複製
leaderboard.db為leaderboard.db.bak。 - 修改
init_db: 更新CREATE TABLE語句以備將來使用。 - 遷移 (Migration): 由於 SQLite 不支援直接修改欄位屬性,通常建議寫一個一次性的 Python script 來執行 SQL:
import sqlite3 conn = sqlite3.connect('leaderboard.db') c = conn.cursor() c.execute('ALTER TABLE scores ADD COLUMN max_combo INTEGER DEFAULT 0') conn.commit() conn.close()
3. 本地測試
在專案根目錄執行:
python server.py
然後瀏覽器打開 http://localhost:5500。
注意事項
- 前端
script.js使用fetch呼叫 API。若修改了 API 路徑或參數,請務必同步更新前端代碼。 server.py同時也是靜態檔案伺服器 (static_folder='.')。