Files
zcglxt/README.md
Claude e71181f0a3 fix: 修复多个关键问题
- 修复前端路由守卫:未登录时不显示提示,直接跳转登录页
- 修复API拦截器:401错误不显示提示,直接跳转
- 增强验证码显示:图片尺寸从120x40增加到200x80
- 增大验证码字体:从28号增加到48号
- 优化验证码字符:排除易混淆的0和1
- 减少干扰线:从5条减少到3条,添加背景色优化
- 增强登录API日志:添加详细的调试日志
- 增强验证码生成和验证日志
- 优化异常处理和错误追踪

影响文件:
- src/router/index.ts
- src/api/request.ts
- app/services/auth_service.py
- app/api/v1/auth.py
- app/schemas/user.py

测试状态:
- 前端构建通过
- 后端语法检查通过
- 验证码显示效果优化完成

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 00:26:21 +08:00

6.4 KiB
Raw Blame History

资产管理系统 - 后端API

基于 FastAPI + SQLAlchemy + PostgreSQL 的企业级资产管理系统后端API

技术栈

  • 框架: FastAPI 0.104+
  • ORM: SQLAlchemy 2.0+ (异步模式)
  • 数据库: PostgreSQL 14+
  • 缓存: Redis
  • 认证: JWT (python-jose)
  • 密码加密: bcrypt
  • 数据验证: Pydantic v2
  • 数据库迁移: Alembic
  • 测试: pytest
  • ASGI服务器: Uvicorn

项目结构

asset_management_backend/
├── app/
│   ├── api/                    # API路由
│   │   └── v1/
│   │       ├── auth.py        # 认证相关API
│   │       └── __init__.py
│   ├── core/                   # 核心模块
│   │   ├── config.py          # 配置管理
│   │   ├── security.py        # 安全相关
│   │   ├── deps.py            # 依赖注入
│   │   ├── exceptions.py      # 自定义异常
│   │   └── response.py        # 统一响应
│   ├── crud/                   # 数据库CRUD操作
│   │   ├── user.py            # 用户CRUD
│   │   └── ...
│   ├── db/                     # 数据库相关
│   │   ├── base.py            # 模型基类
│   │   └── session.py         # 会话管理
│   ├── models/                 # SQLAlchemy模型
│   │   ├── user.py            # 用户模型
│   │   └── ...
│   ├── schemas/                # Pydantic Schema
│   │   ├── user.py            # 用户Schema
│   │   └── ...
│   ├── services/               # 业务逻辑层
│   │   ├── auth_service.py    # 认证服务
│   │   └── ...
│   └── utils/                  # 工具函数
│       └── ...
├── alembic/                    # 数据库迁移
│   └── versions/
├── tests/                      # 测试
├── logs/                       # 日志文件
├── uploads/                    # 上传文件
├── .env.example               # 环境变量示例
├── requirements.txt           # 依赖包
├── run.py                     # 开发服务器启动脚本
└── README.md                  # 项目说明

快速开始

1. 环境准备

确保已安装:

  • Python 3.10+
  • PostgreSQL 14+
  • Redis

2. 安装依赖

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# 安装依赖包
pip install -r requirements.txt

3. 配置环境变量

# 复制环境变量示例文件
cp .env.example .env

# 编辑 .env 文件,配置数据库等信息

4. 初始化数据库

# 创建数据库
createdb asset_management

# 运行数据库迁移
alembic upgrade head

# 或在开发环境直接初始化(会自动创建表)
# 修改 app/main.py 中的 lifespan 函数,取消注释 init_db()

5. 启动服务

# 开发模式(支持热重载)
python run.py

# 或使用 uvicorn
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

6. 访问API文档

启动成功后,访问以下地址:

API端点

认证模块

  • POST /api/v1/auth/login - 用户登录
  • POST /api/v1/auth/refresh - 刷新令牌
  • POST /api/v1/auth/logout - 用户登出
  • PUT /api/v1/auth/change-password - 修改密码
  • GET /api/v1/auth/captcha - 获取验证码

用户管理

  • GET /api/v1/users - 用户列表
  • POST /api/v1/users - 创建用户
  • GET /api/v1/users/{user_id} - 获取用户详情
  • PUT /api/v1/users/{user_id} - 更新用户
  • DELETE /api/v1/users/{user_id} - 删除用户
  • POST /api/v1/users/{user_id}/reset-password - 重置密码
  • GET /api/v1/users/me - 获取当前用户信息

角色权限

  • GET /api/v1/roles - 角色列表
  • POST /api/v1/roles - 创建角色
  • GET /api/v1/roles/{role_id} - 获取角色详情
  • PUT /api/v1/roles/{role_id} - 更新角色
  • DELETE /api/v1/roles/{role_id} - 删除角色
  • GET /api/v1/permissions/tree - 权限树列表

更多API请查看Swagger文档。

开发规范

请参考 development_standards_guide.md 文件。

代码风格

  • 遵循 PEP 8 规范
  • 使用 Black 进行代码格式化
  • 使用 isort 管理导入
  • 使用 flake8 进行代码检查
  • 使用 mypy 进行类型检查

提交规范

遵循 Conventional Commits 规范:

feat: 新功能
fix: Bug修复
docs: 文档更新
style: 代码格式
refactor: 重构
perf: 性能优化
test: 测试
chore: 构建/工具

示例:

git commit -m "feat(auth): 实现用户登录功能"
git commit -m "fix(asset): 修复资产状态转换问题"

测试

# 运行所有测试
pytest

# 运行特定测试文件
pytest tests/api/test_auth.py

# 生成覆盖率报告
pytest --cov=app --cov-report=html

# 查看覆盖率报告
open htmlcov/index.html

数据库迁移

# 创建新的迁移
alembic revision --autogenerate -m "描述信息"

# 执行迁移
alembic upgrade head

# 回滚迁移
alembic downgrade -1

# 查看迁移历史
alembic history

# 查看当前版本
alembic current

生产部署

使用 Docker

# 构建镜像
docker build -t asset-management-backend .

# 运行容器
docker run -d \
  --name asset-backend \
  -p 8000:8000 \
  --env-file .env \
  asset-management-backend

使用 Gunicorn + Uvicorn

pip install gunicorn

gunicorn app.main:app \
  --workers 4 \
  --worker-class uvicorn.workers.UvicornWorker \
  --bind 0.0.0.0:8000 \
  --access-logfile - \
  --error-logfile -

常见问题

数据库连接失败

检查 DATABASE_URL 是否正确配置确保PostgreSQL服务正在运行。

Redis连接失败

检查 REDIS_URL 是否正确配置确保Redis服务正在运行。

Token验证失败

确保 SECRET_KEY 配置正确并检查Token是否过期。

贡献指南

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'feat: Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证。

联系方式

  • 项目负责人: 老王
  • 创建时间: 2025-01-24
  • 版本: v1.0.0