# FootballInsight Pro - 技术选型文档
FootballInsight Pro 是一个足球数据分析平台,提供球队、球员、联赛等多维度的数据分析功能。本文档重点介绍项目的技术选型和架构设计。
## 技术架构概览
FootballInsight Pro 采用前后端分离的混合架构模式:
- 后端:Python + Django
- 前端:Vue.js 3 + Tailwind CSS
- 数据库:SQLite
- 构建工具:Vite
- 包管理:pip (Python) + npm (JavaScript)
## 后端技术栈
### 核心框架
- **Python 3.8+** - 项目开发语言
- **Django 5.2.6** - Web框架,提供API服务和部分页面渲染
- **SQLite** - 轻量级数据库,存储所有足球数据
### 关键依赖库
- **django-cors-headers 4.8.0** - 处理跨域资源共享(CORS)
- **pandas 2.3.2** - 数据处理和CSV文件解析
- **fuzzywuzzy 0.18.0** - 字符串模糊匹配,用于数据标准化
- **RapidFuzz 3.14.0** - 高性能模糊字符串匹配
### 特色功能
- 实现了自定义的[LoggingMiddleware](file:///C:/Users/jerry/PyCharmProjects/footviz/footviz/views/__init__.py#L28-L47)用于记录请求和响应日志
- 使用原生SQL操作数据库,通过[schema.sql](file:///C:/Users/jerry/PyCharmProjects/footviz/footviz/schema.sql)定义表结构
- 实现了数据导入脚本[db_importer.py](file:///C:/Users/jerry/PyCharmProjects/footviz/footviz/db_importer.py),将CSV数据导入SQLite数据库
## 前端技术栈
### 核心框架和库
- **Vue 3.5.18** - 渐进式JavaScript框架,构建用户界面
- **Vue Router 4.5.1** - 官方路由管理器
- **Pinia 3.0.3** - Vue的状态管理库
### UI和样式
- **Tailwind CSS 3.4.17** - 实用优先的CSS框架
- **PostCSS 8.5.1** - CSS后处理器
- **Autoprefixer** - 自动添加CSS厂商前缀
### 构建和开发工具
- **Vite 7.0.6** - 新一代前端构建工具,提供快速的开发体验
- **vite-plugin-ssr-ssg** - 支持服务端渲染(SSR)和静态站点生成(SSG)
- **ESLint** - JavaScript/Vue代码质量检查工具
- **Prettier** - 代码格式化工具
### 可视化库
- **ECharts** - 百度开源的可视化图表库
- **Plotly** - 交互式图表和数据可视化库
## 项目架构特点
### 混合渲染模式
项目采用混合渲染模式,结合了服务端渲染和客户端渲染的优点:
- 部分页面使用Django模板引擎进行服务端渲染
- 复杂交互页面使用Vue组件进行客户端渲染
- 通过API接口实现前后端数据交互
### 静态资源管理
- 使用Django的静态文件处理机制
- 前端资源通过Vite构建后放置在[public](file:///C:/Users/jerry/PyCharmProjects/footviz/footviz-vue/public/)目录
- 大量预生成的HTML可视化文件直接存储在项目中
### 响应式设计
- 使用Tailwind CSS实现响应式布局
- 移动端和桌面端适配
- 采用底部导航(移动端)和侧边栏(桌面端)的不同导航模式
## 数据处理和存储
### 数据格式
- 原始数据以CSV格式存储
- 通过pandas进行数据清洗和转换
- 最终存储在SQLite数据库中
### 数据库设计
- 使用SQLite作为轻量级数据库
- 通过[schema.sql](file:///C:/Users/jerry/PyCharmProjects/footviz/footviz/schema.sql)定义表结构
- 包含players, teams, matches, leagues等多个核心表
## 部署和运行
### 开发环境
- 后端:Django开发服务器
- 前端:Vite开发服务器
### 生产环境
- 支持静态站点生成(SSG)
- 可部署到任何支持静态文件托管的平台
- 支持通过Nginx等反向代理进行部署
## 项目目录结构
```
footviz/ # Django后端项目
├── footviz/ # Django应用
│ ├── data/ # 原始数据文件
│ ├── views/ # Django视图和API
│ └── ... # 其他Django配置文件
├── footviz-vue/ # Vue前端项目
│ ├── src/ # Vue源代码
│ ├── public/ # 静态资源
│ └── ... # 配置文件
├── templates/ # Django模板文件
└── ... # 其他配置文件
```
## 技术选型优势
1. **高效开发**:Django提供快速的后端开发能力,Vue 3提供现代化的前端开发体验
2. **性能优秀**:Vite构建工具提供快速的冷启动和热更新
3. **易于部署**:静态站点生成和轻量级数据库使部署变得简单
4. **可视化丰富**:集成ECharts和Plotly提供丰富的数据可视化能力
5. **响应式设计**:Tailwind CSS使响应式设计变得简单高效