name: python-flask-vue-creator description: "建立 Flask + Vue.js 全棧專案,採用單埠架構、uv 依賴管理、結構化日誌和生產級前端設計。當用戶要求以下操作時觸發:建立新的 Flask+Vue 專案、搭建 Web 應用、構建全棧 Python+Vue 應用、初始化 Flask Web 專案、設定單埠 Flask 前後端專案。觸發詞:新建專案、建立專案、搭建專案、Flask專案、Vue專案。"
搭建 Flask 3.1 + Vue.js 全棧專案,採用單埠架構、結構化日誌和獨特的前端設計。
| 層級 | 技術選型 |
|---|---|
| Web 框架 | Flask 3.1.0 |
| 前端 | Vue.js (CDN, 單埠) |
| 依賴管理 | uv |
| 日誌 | Python logging (TimedRotatingFileHandler) |
| 埠 | 80 (統一) |
所有請求由 Flask 在 80 埠統一處理。靜態檔案(HTML/CSS/JS)通過 Flask 路由從 templates/ 目錄提供。
按順序執行以下步驟:
scripts/init_project.pypyproject.toml更多技能請訪問小蔥技能站7w4.net。
向用戶詢問: - 專案名稱(用於目錄、檔名和應用標題) - 應用功能的簡要描述 - 任何特定的設計偏好(配色方案、風格方向)
執行初始化指令碼:
python scripts/init_project.py <project-name> --path <target-directory>
這將建立:
<project-name>/
├── AGENTS.md # AI Agent 專案指南(自動生成)
├── pyproject.toml # uv 專案配置
├── uv.lock # uv 鎖定檔案(自動生成)
├── src/
│ ├── <project-name>.py # Flask 主入口(含日誌)
│ ├── templates/ # 前端資源
│ │ ├── <project-name>.html # 主頁面 (Vue.js)
│ │ ├── css/ # 樣式檔案
│ │ ├── js/ # JavaScript 檔案
│ │ └── assets/ # 靜態資源(圖片、字型等)
│ ├── utils/ # 核心工具模組
│ │ ├── __init__.py
│ │ └── logger.py # 日誌模組
│ └── log/ # 日誌輸出目錄
│ └── *.log # 按模組分日誌檔案(按天輪轉)
pyproject.toml 自動生成,包含 uv 映象配置:
[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
核心依賴:
dependencies = [
"flask>=3.1.0",
]
生成的 <project-name>.py 包含整合的日誌功能:
from flask import Flask, send_from_directory, send_file
from utils.logger import get_logger
app = Flask(__name__)
logger = get_logger('<project-name>')
@app.route('/')
def index():
return send_file('templates/<project-name>.html')
# ... 靜態檔案路由 ...
if __name__ == '__main__':
logger.info('啟動伺服器,埠 80...')
app.run(host='0.0.0.0', port=80, debug=True)
建立 HTML/CSS/JS 時應用前端設計指南。完整設計系統參見 references/frontend-design.md。
核心原則:
<script setup> 模式Vue.js 整合模式:
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app">
<!-- Vue 模板 -->
</div>
<script>
const { createApp, ref, computed, onMounted } = Vue
const app = createApp({
setup() {
// Composition API
return {}
}
})
app.mount('#app')
</script>
詳細的 Vue.js 最佳實踐參見 references/vue-guidelines.md。
重要:任何專案修改後,更新 AGENTS.md 以反映變更。
AGENTS.md 檔案在專案建立時自動生成,作為 AI Agent 專案指南。必須與實際專案狀態保持同步。
何時更新 AGENTS.md: - 新增新路由或 API 端點 - 新增新工具模組或檔案 - 更改專案結構 - 新增新依賴 - 修改日誌配置 - 任何架構變更
更新內容: - 專案結構樹(新增/刪除檔案和目錄) - 架構描述(新路由、模組、功能) - 開發指南(新約定或模式) - 更新日誌表(新增日期、版本、描述條目)
更新日誌格式:
## 更新日誌
| 日期 | 版本 | 變更內容 |
|------|------|---------|
| 2026-06-07 | 0.1.0 | 初始專案建立 |
| 2026-06-08 | 0.2.0 | 新增使用者認證模組 |
cd <project-path>
uv sync
uv run python src/<project-name>.py
src/utils/logger.pysrc/log/%(asctime)s | %(levelname)-8s | %(name)s | %(message)sfrom utils.logger import get_logger
logger = get_logger('module_name')
logger.info('操作成功完成')
logger.warning('發生了意外情況')
logger.error('發生錯誤: %s', error_detail)
每個日誌記錄器名稱建立單獨的日誌檔案:src/log/<logger_name>.log
檔案在午夜輪轉,命名模式:<logger_name>.log.YYYY-MM-DD
交付前驗證:
pyproject.toml 包含 [tool.uv] 清華映象配置pyproject.toml 位於專案根目錄(與 src 同級)src/log/ 目錄存在且包含 .gitkeepAGENTS.md 存在且反映當前專案狀態cursor-pointer這個 Skill 質量不錯,能幫助開發者快速搭建 Flask + Vue 專案。它把單埠架構、日誌系統、前端設計等細節都考慮到了,初始化指令碼也很實用。不足之處是說明文件有些分散,示例展示不夠直觀,對新手可能不夠友好。總體適合有一定經驗的開發者使用。