# lcmb-backend **Repository Path**: Erick886/lcmb-backend ## Basic Information - **Project Name**: lcmb-backend - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-19 - **Last Updated**: 2025-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lcmb-backend 这是一个基于 Django 的后端项目,主要用于账本管理、分类管理、账单记录、用户认证、文件上传、数据导出等功能。项目使用了 JWT 进行身份验证,并提供了 RESTful API 接口供前端调用。 ## 主要功能模块 ### 用户认证 (Auth) - **注册**:支持用户注册,自动创建 JWT token。 - **登录**:支持用户名或邮箱登录,返回 JWT token。 - **刷新 Token**:提供刷新 token 的接口,确保 token 的时效性。 ### 账本管理 (Book) - **获取账本列表**:支持获取当前用户的所有账本。 - **创建账本**:支持创建新的账本。 - **账本详情**:支持根据 ID 获取账本详情。 - **更新账本**:支持更新账本信息。 - **删除账本**:支持软删除账本(将状态设置为2)。 ### 分类管理 (Category) - **获取分类列表**:支持获取当前用户的所有分类,支持树形结构和按类型过滤。 - **创建分类**:支持创建顶级分类或子分类。 - **分类详情**:支持根据 ID 获取分类详情。 - **更新分类**:支持更新分类信息。 - **删除分类**:如果分类有子分类或关联记录,则不允许删除。 ### 账单记录管理 (Record) - **获取账单记录列表**:支持按账本、类型、时间范围等过滤。 - **创建账单记录**:支持创建新的账单记录。 - **账单记录详情**:支持根据 ID 获取账单记录详情。 - **更新账单记录**:支持更新账单记录信息。 - **删除账单记录**:支持删除账单记录。 - **添加评论**:支持为账单记录添加评论。 ### 文件管理 (File) - **上传文件**:支持上传文件到服务器。 - **获取文件列表**:支持获取当前用户上传的文件列表。 - **获取文件详情**:支持根据 ID 获取文件详情。 - **删除文件**:支持删除指定的文件(只能删除自己上传的文件)。 ### 数据导出 (Export) - **导出账单数据**:支持导出指定时间范围内的账单数据,格式支持 CSV 和 Excel。 ### 用户管理 (User) - **获取用户列表**:需要管理员权限。 - **获取当前登录用户详情**:支持获取当前登录用户的数据。 - **更新当前登录用户信息**:支持更新当前登录用户的信息。 - **获取用户详情**:支持根据 ID 获取用户详情。 - **更新用户信息**:支持更新用户信息(只能更新自己的信息)。 - **删除用户**:支持软删除用户(将状态设置为2)。 - **获取用户好友列表**:支持获取指定用户的好友列表。 ## 技术栈 - **后端框架**:[Django](https://www.djangoproject.com/) + [Django REST Framework](https://www.django-rest-framework.org/) - **身份验证**:JWT(JSON Web Token) - **数据库**:Django ORM(支持主流数据库如 PostgreSQL、MySQL、SQLite) - **文件上传**:支持上传文件并存储在服务器上。 - **数据导出**:支持导出账单数据为 CSV 或 Excel 格式。 - **WebSocket**:支持 WebSocket 通信,用于实时交互(如 AI 聊天)。 ## 安装与部署 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 数据库迁移 ```bash python manage.py migrate ``` ### 3. 启动开发服务器 ```bash python manage.py runserver ``` ### 4. 配置 JWT 密钥 在 `settings.py` 中配置 JWT 的密钥和过期时间: ```python JWT_SECRET_KEY = 'your-secret-key' JWT_ALGORITHM = 'HS256' JWT_EXPIRATION_TIME = 3600 # token 过期时间(秒) ``` ### 5. 配置邮件服务(可选) 如需使用邮件功能(如注册、密码重置等),请在 `settings.py` 中配置邮件服务器信息: ```python EMAIL_HOST = 'smtp.example.com' EMAIL_PORT = 587 EMAIL_HOST_USER = 'your-email@example.com' EMAIL_HOST_PASSWORD = 'your-email-password' EMAIL_USE_TLS = True ``` ## API 文档 项目集成了 [Django REST Framework](https://www.django-rest-framework.org/) 和 [drf-yasg](https://github.com/axnsan12/drf-yasg),支持通过 Swagger 查看和测试 API 接口。 访问地址:`http://localhost:8000/swagger/` ## 使用说明 ### 用户认证 - **注册**:`POST /api/v1/auth/register/` - **登录**:`POST /api/v1/auth/login/` - **刷新 Token**:`POST /api/v1/auth/refresh-token/` ### 账本管理 - **获取账本列表**:`GET /api/v1/book/` - **创建账本**:`POST /api/v1/book/` - **账本详情**:`GET /api/v1/book//` - **更新账本**:`PUT /api/v1/book//` - **删除账本**:`DELETE /api/v1/book//` ### 分类管理 - **获取分类列表**:`GET /api/v1/category/` - **创建分类**:`POST /api/v1/category/` - **分类详情**:`GET /api/v1/category//` - **更新分类**:`PUT /api/v1/category//` - **删除分类**:`DELETE /api/v1/category//` ### 账单记录管理 - **获取账单记录列表**:`GET /api/v1/record/` - **创建账单记录**:`POST /api/v1/record/` - **账单记录详情**:`GET /api/v1/record//` - **更新账单记录**:`PUT /api/v1/record//` - **删除账单记录**:`DELETE /api/v1/record//` ### 文件管理 - **上传文件**:`POST /api/v1/file/upload/` - **获取文件列表**:`GET /api/v1/file/` - **获取文件详情**:`GET /api/v1/file//` - **删除文件**:`DELETE /api/v1/file//` ### 数据导出 - **导出账单数据**:`GET /api/v1/export/record/` ### 用户管理 - **获取用户列表**:`GET /api/v1/user/` - **获取当前登录用户详情**:`GET /api/v1/user/me/` - **更新当前登录用户信息**:`PUT /api/v1/user/me/` - **获取用户详情**:`GET /api/v1/user//` - **更新用户信息**:`PUT /api/v1/user//` - **删除用户**:`DELETE /api/v1/user//` - **获取用户好友列表**:`GET /api/v1/user/friends/` ## WebSocket 支持 项目支持 WebSocket 通信,用于实时交互功能(如 AI 聊天)。 ### WebSocket 路由 - **AI 聊天**:`/ws/ai/` ## AI 功能 项目集成了 AI 功能,支持通过自然语言进行账单记录、账本管理等操作。 ### AI 工具 - **记录账单**:支持通过自然语言记录账单。 - **查询账单**:支持通过自然语言查询账单。 - **删除账单**:支持通过自然语言删除账单。 - **更新账单**:支持通过自然语言更新账单。 - **获取账本**:支持通过自然语言获取账本信息。 - **获取分类**:支持通过自然语言获取分类信息。 ### AI 接口 - **聊天接口**:`POST /api/v1/ai/chat/` - **调用 AI 工具**:`POST /api/v1/ai/tool/` ## 测试 项目提供了完整的测试用例,可以通过以下命令运行测试: ```bash python manage.py test ``` ## 贡献 欢迎贡献代码!请遵循以下步骤: 1. Fork 项目。 2. 创建新分支。 3. 提交代码。 4. 创建 Pull Request。 ## 许可证 本项目使用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。