# flask-template **Repository Path**: botezhou_admin/flask-template ## Basic Information - **Project Name**: flask-template - **Description**: 一个基于Flask的项目模板,提供快速启动Web应用所需的基础结构,支持插件扩展和多环境配置,助力开发者高效构建应用。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-22 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flask后端API项目 这是一个使用Flask框架构建的后端API项目,提供用户管理和认证功能。项目采用RESTful API设计风格,使用MySQL作为数据库。 ## 项目结构 ``` flask-backend/ ├── .env # 环境变量配置 ├── .gitignore # Git忽略文件 ├── app/ # 应用主目录 │ ├── __init__.py # 应用工厂 │ ├── blueprints/ # 蓝图目录 │ │ ├── __init__.py │ │ ├── api.py # API蓝图 │ │ └── auth.py # 认证蓝图 │ ├── models/ # 数据模型 │ │ ├── __init__.py │ │ └── user.py # 用户模型 │ ├── resources/ # API资源 │ │ └── user.py # 用户资源 │ └── utils/ # 工具函数 │ ├── __init__.py │ └── responses.py # 响应格式化工具 ├── config.py # 应用配置 ├── requirements.txt # 项目依赖 └── run.py # 应用入口 ``` ## 技术栈 - **Flask**: 轻量级Web框架 - **Flask-RESTful**: 用于构建RESTful API的扩展 - **Flask-SQLAlchemy**: ORM工具,用于数据库操作 - **Flask-Migrate**: 数据库迁移工具 - **PyMySQL**: MySQL数据库驱动 - **python-dotenv**: 环境变量管理 ## 功能特性 ### 用户管理 - 获取所有用户列表 - 获取单个用户信息 - 创建新用户 - 更新用户信息 - 删除用户 ### 认证系统 - 用户注册 - 用户登录 - 获取用户资料 ## 快速开始 ### 环境要求 - Python 3.6+ - MySQL 5.7+ ### 安装步骤 1. 克隆项目 ```bash git clone cd flask-backend ``` 2. 安装依赖 ```bash pip install -r requirements.txt ``` 3. 配置环境变量 复制`.env.example`文件为`.env`并配置相应的环境变量: ```env FLASK_APP=run.py FLASK_ENV=development SECRET_KEY=your-secret-key-here MYSQL_HOST=localhost MYSQL_USER=your-mysql-username MYSQL_PASSWORD=your-mysql-password MYSQL_DATABASE=your-database-name MYSQL_PORT=3306 ``` 4. 初始化数据库 ```bash flask db init flask db migrate -m "Initial migration" flask db upgrade ``` 5. 运行应用 ```bash python run.py ``` 应用将在 `http://localhost:5000` 上运行。 ## API文档 ### 健康检查 - **GET /** - 描述:检查API健康状态 - 响应:`{"status": "healthy", "message": "Flask API is running"}` ### 用户认证 - **POST /auth/register** - 描述:用户注册 - 请求体: ```json { "username": "testuser", "email": "test@example.com", "password": "password123" } ``` - 响应: ```json { "success": true, "message": "User registered successfully", "data": { "id": 1, "username": "testuser", "email": "test@example.com", "created_at": "2023-10-01T12:00:00", "updated_at": "2023-10-01T12:00:00" } } ``` - **POST /auth/login** - 描述:用户登录 - 请求体: ```json { "username": "testuser", "password": "password123" } ``` - 响应: ```json { "success": true, "message": "Login successful", "data": { "user": { "id": 1, "username": "testuser", "email": "test@example.com", "created_at": "2023-10-01T12:00:00", "updated_at": "2023-10-01T12:00:00" }, "token": "jwt-token-here" } } ``` - **GET /auth/profile** - 描述:获取用户资料(需要认证) - 响应: ```json { "success": true, "message": "Profile retrieved successfully", "data": { "id": 1, "username": "testuser", "email": "test@example.com", "created_at": "2023-10-01T12:00:00", "updated_at": "2023-10-01T12:00:00" } } ``` ### 用户管理API - **GET /api/users** - 描述:获取所有用户列表 - 响应: ```json { "success": true, "message": "Users retrieved successfully", "data": [ { "id": 1, "username": "testuser1", "email": "test1@example.com", "created_at": "2023-10-01T12:00:00", "updated_at": "2023-10-01T12:00:00" }, { "id": 2, "username": "testuser2", "email": "test2@example.com", "created_at": "2023-10-02T12:00:00", "updated_at": "2023-10-02T12:00:00" } ] } ``` - **GET /api/users/** - 描述:获取单个用户信息 - 响应: ```json { "success": true, "message": "User retrieved successfully", "data": { "id": 1, "username": "testuser", "email": "test@example.com", "created_at": "2023-10-01T12:00:00", "updated_at": "2023-10-01T12:00:00" } } ``` - **POST /api/users** - 描述:创建新用户 - 请求体: ```json { "username": "newuser", "email": "new@example.com", "password": "password123" } ``` - 响应: ```json { "success": true, "message": "User created successfully", "data": { "id": 3, "username": "newuser", "email": "new@example.com", "created_at": "2023-10-03T12:00:00", "updated_at": "2023-10-03T12:00:00" } } ``` - **PUT /api/users/** - 描述:更新用户信息 - 请求体: ```json { "username": "updateduser", "email": "updated@example.com" } ``` - 响应: ```json { "success": true, "message": "User updated successfully", "data": { "id": 1, "username": "updateduser", "email": "updated@example.com", "created_at": "2023-10-01T12:00:00", "updated_at": "2023-10-03T12:00:00" } } ``` - **DELETE /api/users/** - 描述:删除用户 - 响应: ```json { "success": true, "message": "User deleted successfully", "data": null } ``` ## 安全注意事项 1. 本项目中的密码存储仅为示例,实际项目中应使用`Werkzeug`的`generate_password_hash`和`check_password_hash`进行密码加密和验证 2. JWT token实现需要替换为实际的JWT库,如`PyJWT` 3. 在生产环境中,应将`FLASK_ENV`设置为`production`,并使用强密钥 ## 开发说明 ### 数据库迁移 当修改数据模型后,需要执行以下命令进行数据库迁移: ```bash flask db migrate -m "Description of changes" flask db upgrade ``` ### 错误处理 项目使用统一的错误响应格式: ```json { "success": false, "message": "Error message", "errors": {} } ``` ## 许可证 [MIT](LICENSE)