Files
zkxw/backend/README.md
T
2026-05-12 22:07:53 +08:00

100 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# zkxw 后端骨架(FastAPI)
基于 FastAPI 的精简后端:**Web 鉴权**(登录 RSA、登录、刷新 Token、登出、当前用户、菜单 code)、**静态运营菜单树**、**运营端路由占位**。原叁强鲜配业务 API 已移除,可按模块在 `app/api/admin.py` 等位置扩展。
数据库最小初始化见:`docs/sql/zkxw-backend-skeleton.sql`(默认账号 `admin` / `111111`,角色 `super_admin`)。
## 技术栈
- FastAPI - 现代高性能异步 Web 框架
- SQLAlchemy - ORM 数据库映射
- Pydantic - 数据验证
- JWT - 用户认证
- MySQL/PostgreSQL - 数据库
## 项目结构
```
backend/
├── app/
│ ├── api/ # API 路由
│ │ ├── admin/ # 运营端接口
│ │ ├── supplier/ # 供应商端接口
│ │ ├── client/ # 客户端接口
│ │ └── deliver/ # 配送员端接口
│ ├── core/ # 核心配置
│ │ ├── config.py # 应用配置
│ │ ├── security.py # 安全认证
│ │ └── database.py # 数据库连接
│ ├── models/ # 数据库模型
│ ├── schemas/ # Pydantic schemas
│ ├── services/ # 业务逻辑
│ └── main.py # 应用入口
├── requirements.txt
└── README.md
```
## 快速开始
### 1. 创建虚拟环境
```bash
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
```
### 2. 安装依赖
```bash
pip install -r requirements.txt
```
### 3. 配置环境变量
复制 `.env.example` 为 `.env` 并修改配置:
```env
# 数据库配置
DATABASE_URL=mysql+pymysql://root:password@localhost:3306/sanqiang
# JWT配置
SECRET_KEY=your-secret-key-change-in-production
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# 应用配置
APP_NAME=陇耘鲜达
DEBUG=true
```
### 4. 启动服务
```bash
uvicorn app.main:app --reload --port 8000
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
服务启动后,访问:
- API 文档:http://127.0.0.1:8000/docs
- ReDoc 文档:http://127.0.0.1:8000/redoc
## API 路由分组
| 前缀 | 说明 | 认证方式 |
|------|------|----------|
| `/api/admin` | 运营端接口 | JWT Token |
| `/api/supplier` | 供应商端接口 | JWT Token |
| `/api/client` | 客户端接口 | JWT Token |
| `/api/deliver` | 配送员端接口 | JWT Token |
| `/api/public` | 公共接口(登录等) | 无需认证 |
## 开发规范
- 使用 Pydantic 进行数据验证
- 使用 SQLAlchemy ORM 进行数据库操作
- 所有接口遵循 RESTful 规范
- 密码使用 bcrypt 加密存储
- 使用 JWT Token 进行用户认证