# python-demo **Repository Path**: code_mozart/python-demo ## Basic Information - **Project Name**: python-demo - **Description**: traeCN实验python项目 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-01 - **Last Updated**: 2026-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flask全栈演示项目 这是一个完整的Flask全栈演示项目,展示了Flask与MySQL、Redis的集成使用。项目包含用户管理、产品管理、缓存功能等完整的CRUD操作。 ## 项目特性 - 🚀 **Flask Web框架** - 轻量级Python web框架 - 🗄️ **MySQL数据库** - 关系型数据库存储 - ⚡ **Redis缓存** - 内存数据库用于缓存 - 🎨 **Bootstrap前端** - 响应式UI设计 - 🔄 **RESTful API** - 标准的API设计 - 📊 **数据统计** - 实时统计数据 - 🐳 **Docker支持** - 容器化部署 ## 项目结构 ``` python-demo/ ├── app.py # Flask应用主文件 ├── config.py # 配置文件 ├── models.py # 数据模型 ├── routes.py # API路由 ├── requirements.txt # Python依赖 ├── Dockerfile # Docker镜像构建 ├── docker-compose.yml # Docker Compose配置 ├── init.sql # 数据库初始化脚本 ├── templates/ # HTML模板 │ └── index.html # 主页面 └── static/ # 静态文件 ├── css/ │ └── style.css # 样式文件 └── js/ └── main.js # JavaScript文件 ``` ## 技术栈 - **后端**: Python 3.11 + Flask - **数据库**: MySQL 8.0 - **缓存**: Redis 7 - **前端**: HTML5 + Bootstrap 5 + Vanilla JavaScript - **容器化**: Docker + Docker Compose ## 快速开始 ### 方法一:Docker Compose(推荐) 1. **克隆或下载项目文件到本地** 2. **启动所有服务**: ```bash docker-compose up -d ``` 3. **等待服务启动完成**(约1-2分钟) 4. **访问应用**: - Web界面:http://localhost:5000 - API接口:http://localhost:5000/api ### 方法二:本地开发环境 #### 环境要求 - Python 3.11+ - MySQL 8.0+ - Redis 7+ #### 安装步骤 1. **安装Python依赖**: ```bash pip install -r requirements.txt ``` 2. **配置MySQL数据库**: ```sql CREATE DATABASE flask_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 3. **配置环境变量**(可选,创建 `.env` 文件): ```env SECRET_KEY=your-secret-key MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your-password MYSQL_DB=flask_demo REDIS_HOST=localhost REDIS_PORT=6379 ``` 4. **初始化数据库**: ```bash mysql -u root -p flask_demo < init.sql ``` 5. **启动应用**: ```bash python app.py ``` ## API接口文档 ### 用户管理 - **GET /api/users** - 获取用户列表 - **GET /api/users/{id}** - 获取指定用户 - **POST /api/users** - 创建新用户 ### 产品管理 - **GET /api/products** - 获取产品列表 - **GET /api/products/{id}** - 获取指定产品 - **POST /api/products** - 创建新产品 ### 系统功能 - **GET /api/stats** - 获取统计数据 - **GET /api/redis/test** - 测试Redis连接 - **GET /api/search/users** - 搜索用户 ## 使用说明 ### Web界面功能 1. **用户管理** - 查看和管理用户信息 2. **产品管理** - 查看和管理产品库存 3. **数据统计** - 查看系统统计数据 4. **Redis测试** - 测试缓存连接 5. **快速添加** - 直接添加用户和产品 ### 示例数据 项目启动时会自动创建示例数据: - 3个示例用户(张三、李四、王五) - 3个示例产品(笔记本电脑、无线鼠标、机械键盘) ### 缓存机制 - API响应结果会被缓存到Redis - 创建/更新数据时会自动清除相关缓存 - 缓存有效期:60-300秒 ## 开发指南 ### 添加新功能 1. **创建数据模型**(在 `models.py` 中) 2. **添加API路由**(在 `routes.py` 中) 3. **更新前端界面**(在 `templates/` 和 `static/` 中) ### 环境配置 所有配置都在 `config.py` 中,支持环境变量覆盖: ```bash export MYSQL_HOST=your-mysql-host export MYSQL_PASSWORD=your-password export REDIS_HOST=your-redis-host # ... 其他配置 ``` ## 故障排除 ### 常见问题 1. **MySQL连接失败** - 检查MySQL服务是否运行 - 验证数据库用户权限 - 确认连接参数正确 2. **Redis连接失败** - 检查Redis服务是否运行 - 验证Redis端口是否开放 3. **端口冲突** - MySQL默认端口:3306 - Redis默认端口:6379 - Flask默认端口:5000 ### 日志查看 ```bash # Docker Compose日志 docker-compose logs -f flask-app # 查看MySQL日志 docker-compose logs mysql # 查看Redis日志 docker-compose logs redis ``` ## 生产环境部署 ### 安全建议 1. **更改默认密码** 2. **使用环境变量管理敏感信息** 3. **启用HTTPS** 4. **配置防火墙** 5. **定期备份数据库** ### 性能优化 1. **启用数据库连接池** 2. **配置Redis持久化** 3. **使用Gunicorn作为WSGI服务器** 4. **配置反向代理(Nginx)** ## 贡献指南 欢迎提交Issue和Pull Request来改进这个项目。 ## 许可证 MIT License ## 联系方式 如有问题,请通过GitHub Issues联系。 --- **开始探索吧!** 访问 http://localhost:5000 查看完整的演示应用。