# 排球教育与计算机教育 **Repository Path**: Zhao_201209/education ## Basic Information - **Project Name**: 排球教育与计算机教育 - **Description**: 聚焦排球运动与计算机编程领域,分享学习资源与活动信息,推动运动与技能的共同发展。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-11 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 刘云派球教育平台 一个基于 Flask + 原生前端的在线教育管理系统,支持课程管理、用户管理、作业系统等功能。 ## 📚 技术栈 **后端 (backed/)** - Flask 3.0.0 - Web框架 - SQLAlchemy - ORM - MySQL - 数据库 - JWT - 身份认证 - Gunicorn - WSGI服务器 **前端 (front/)** - 原生 HTML/CSS/JavaScript - Bootstrap - UI框架 - 响应式设计 ## 📁 项目结构 ``` education/ ├── setup.bat # Windows环境安装脚本 ├── setup.sh # Linux环境安装脚本 ├── start-dev.bat # Windows开发环境一键启动 ├── start-dev.sh # Linux开发环境一键启动 ├── backed/ # 后端Flask应用 │ ├── app.py # 主应用文件 │ ├── config.py # 配置管理 │ ├── requirements.txt # Python依赖 │ ├── env.development # 开发环境配置 │ └── env.production # 生产环境配置 ├── front/ # 前端静态文件 │ ├── index.html # 主页面 │ ├── js/ # JavaScript文件 │ └── css/ # 样式文件 └── nginx.conf # Nginx配置示例 ``` ## 🚀 快速开始 ### 环境要求 **开发环境 (Windows)** - Python 3.8+ - MySQL 5.7+ - Git **生产环境 (Linux)** - Python 3.8+ - MySQL 5.7+ - Nginx - Git --- ## 🔧 开发环境启动 ### 🚀 一键启动(推荐) **Windows 系统:** ```bash # 首次运行:安装环境 setup.bat # 日常启动:一键启动开发环境 start-dev.bat ``` **Linux/macOS 系统:** ```bash # 首次运行:安装环境 chmod +x setup.sh start-dev.sh ./setup.sh # 日常启动:一键启动开发环境 ./start-dev.sh ``` ### 📋 启动说明 **安装步骤 (`setup.bat/sh`):** 1. 检查Python版本(需要3.8+) 2. 创建Python虚拟环境 `backed/venv/` 3. 安装所有后端依赖包 **启动步骤 (`start-dev.bat/sh`):** 1. **后端服务**:启动Flask开发服务器(端口8888) 2. **前端服务**:启动Python HTTP服务器(端口3000) 3. **自动打开**:两个服务同时运行 **访问地址:** - 🌐 **前端页面**:http://localhost:3000 - 📱 **后端API**:http://localhost:8888/api ### 3️⃣ 开发环境配置 **后端配置** (`backed/env.development`) ```env FLASK_ENV=development SECRET_KEY=dev-secret-key-change-me JWT_SECRET_KEY=dev-jwt-secret-change-me DATABASE_URL=mysql+pymysql://root:123456@localhost:3306/liuyun PORT=8888 HOST=0.0.0.0 API_DOMAIN=http://localhost:8888 FRONTEND_DOMAIN=http://localhost:3000 ``` **前端配置** (`front/js/config.js`) - 自动检测环境 - 开发环境API地址:`http://localhost:8888/api` - 支持热重载和调试 --- ## 🌐 生产环境部署 ### 1️⃣ 服务器准备 **安装依赖:** ```bash # Ubuntu/Debian sudo apt update sudo apt install python3 python3-venv python3-pip mysql-server nginx git # CentOS/RHEL sudo yum update sudo yum install python3 python3-pip mysql-server nginx git ``` ### 2️⃣ 部署后端 ```bash # 1. 克隆项目 git clone /var/www/education cd /var/www/education # 2. 安装环境 chmod +x setup.sh ./setup.sh # 3. 配置生产环境变量 # 编辑 backed/env.production,修改以下关键配置: # SECRET_KEY=your-production-secret-key-please-change-this # JWT_SECRET_KEY=your-production-jwt-secret-please-change-this # DATABASE_URL=mysql+pymysql://root:your_password@127.0.0.1:3306/liuyun # 4. 启动生产环境(手动启动) cd backed source venv/bin/activate python start_prod.py ``` ### 3️⃣ 配置 Nginx **创建 Nginx 配置:** ```bash sudo cp /var/www/education/nginx.conf /etc/nginx/sites-available/liuyunpaiqiu sudo ln -s /etc/nginx/sites-available/liuyunpaiqiu /etc/nginx/sites-enabled/ ``` **修改配置文件:** ```bash sudo nano /etc/nginx/sites-available/liuyunpaiqiu ``` **关键配置:** - 修改 `root` 路径为实际前端路径 - 确认后端代理端口 (默认8888) - 更新域名配置 **启动 Nginx:** ```bash sudo nginx -t # 测试配置 sudo systemctl restart nginx sudo systemctl enable nginx ``` ### 4️⃣ 系统服务配置 (可选) **创建 systemd 服务:** ```bash sudo cp /var/www/education/backed/flask-education.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable flask-education sudo systemctl start flask-education ``` ### 5️⃣ 生产环境验证 1. **后端API测试:** ```bash curl http://localhost:8888/api/health ``` 2. **前端访问:** - 浏览器访问你的域名 - 检查控制台是否正确加载配置 3. **数据库连接:** - 确认MySQL服务运行 - 检查数据库连接和表结构 --- ## ⚙️ 配置说明 ### 环境变量配置 **开发环境** (`backed/env.development`) - 数据库连接配置 - 调试模式开启 - 本地域名配置 **生产环境** (`backed/env.production`) - 生产密钥配置 ⚠️ **必须修改** - 数据库生产配置 - JWT过期时间设置 - HTTPS域名配置 ### 前端环境自动检测 `front/js/config.js` 会自动检测运行环境: - `localhost` / `127.0.0.1` → 开发环境 - `liuyunpaiqiu.cn` → 生产环境 - 自动切换API地址 --- ## 🛠️ 开发工具 ### 数据库管理 ```bash # 进入后端目录并激活环境 cd backed source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate.bat # Windows # 初始化数据库 python init_data.py # 数据库迁移(如有新字段) python -c "from app import db; db.create_all()" ``` ### API测试 使用 `front/test-api.html` 进行接口调试。 ### 日志查看 ```bash # 开发环境:控制台直接输出 # 生产环境: sudo journalctl -u flask-education -f ``` --- ## 🚨 常见问题 ### 开发环境问题 **1. 虚拟环境创建失败** ```bash # 检查Python版本 python --version # 需要 3.8+ # 手动创建虚拟环境 python -m venv venv ``` **2. 数据库连接失败** - 检查MySQL服务是否启动 - 确认用户名密码正确 - 创建数据库:`CREATE DATABASE liuyun;` **3. 端口被占用** ```bash # Windows 查看端口占用 netstat -ano | findstr :8888 # 修改端口 # 编辑 env.development 中的 PORT 值 ``` ### 生产环境问题 **1. 权限问题** ```bash # 设置正确权限 sudo chown -R www-data:www-data /var/www/education sudo chmod +x /var/www/education/backed/*.sh ``` **2. Nginx 配置错误** ```bash # 测试配置 sudo nginx -t # 查看错误日志 sudo tail -f /var/log/nginx/error.log ``` **3. 防火墙设置** ```bash # Ubuntu 开放端口 sudo ufw allow 80 sudo ufw allow 443 # CentOS 开放端口 sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload ``` --- ## 📋 部署检查清单 ### 开发环境 - [ ] Python 3.8+ 已安装 - [ ] MySQL 服务已启动 - [ ] 运行 `setup.bat/sh` 安装环境 - [ ] 数据库 `liuyun` 已创建 - [ ] 运行 `start-dev.bat/sh` 一键启动成功 - [ ] 后端服务运行正常 (端口8888) - [ ] 前端页面访问正常 (端口3000) - [ ] API接口测试通过 ### 生产环境 - [ ] 服务器基础环境已配置 - [ ] 项目代码已部署 - [ ] Python虚拟环境已创建 - [ ] 生产环境变量已配置 ⚠️ - [ ] MySQL数据库已配置 - [ ] Nginx配置已更新 - [ ] 域名解析已配置 - [ ] SSL证书已安装 (可选) - [ ] 系统服务已配置 - [ ] 防火墙规则已设置 --- ## 🎯 快速命令参考 ### Windows 开发 ```bash setup.bat # 首次安装环境 start-dev.bat # 一键启动开发环境(后端+前端) ``` ### Linux 生产 ```bash ./setup.sh # 首次安装环境 ./start-dev.sh # 开发环境一键启动 # 生产环境手动启动 cd backed && source venv/bin/activate && python start_prod.py # Nginx管理 sudo systemctl restart nginx # 重启Nginx ``` ### 常用端口 - **开发环境**:后端 8888,前端 3000 - **生产环境**:HTTP 80,HTTPS 443,后端内部 8888 --- ## 📞 技术支持 如有问题,请检查: 1. 环境配置是否正确 2. 端口是否被占用 3. 数据库连接是否正常 4. 防火墙设置是否正确 **祝您使用愉快!** 🎉