114 lines
2.2 KiB
Markdown
114 lines
2.2 KiB
Markdown
# 后端服务 (Backend)
|
||
|
||
币安自动交易系统后端API服务
|
||
|
||
## 功能
|
||
|
||
- 配置管理API(从数据库读取/更新配置)
|
||
- 交易记录API
|
||
- 统计分析API
|
||
- 仪表板数据API
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
cd backend
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
## 数据库配置
|
||
|
||
### 方式1:使用.env文件(推荐)
|
||
|
||
在 `backend/` 目录或项目根目录创建 `.env` 文件:
|
||
|
||
```bash
|
||
# 复制示例文件
|
||
cp .env.example .env
|
||
|
||
# 编辑.env文件
|
||
DB_HOST=localhost
|
||
DB_PORT=3306
|
||
DB_USER=root
|
||
DB_PASSWORD=your_password
|
||
DB_NAME=auto_trade_sys
|
||
CORS_ORIGINS=http://localhost:3000,http://localhost:5173
|
||
```
|
||
|
||
### 方式2:使用环境变量
|
||
|
||
```bash
|
||
export DB_HOST=localhost
|
||
export DB_PORT=3306
|
||
export DB_USER=root
|
||
export DB_PASSWORD=your_password
|
||
export DB_NAME=auto_trade_sys
|
||
export CORS_ORIGINS=http://localhost:3000,http://localhost:5173
|
||
```
|
||
|
||
**注意**:系统会优先从 `.env` 文件读取配置,然后才是环境变量。
|
||
|
||
## 初始化数据库
|
||
|
||
```bash
|
||
mysql -u root -p < database/init.sql
|
||
```
|
||
|
||
## 运行
|
||
|
||
### 开发模式(自动重载)
|
||
|
||
代码修改后会自动重启,无需手动重启:
|
||
|
||
```bash
|
||
# 方式1:使用开发启动脚本
|
||
./start_dev.sh
|
||
|
||
# 方式2:直接运行
|
||
uvicorn api.main:app --reload --host 0.0.0.0 --port 8001
|
||
```
|
||
|
||
### 生产模式
|
||
|
||
代码修改后需要手动重启:
|
||
|
||
```bash
|
||
# 方式1:使用生产启动脚本
|
||
./start.sh
|
||
|
||
# 方式2:使用重启脚本
|
||
./restart.sh
|
||
|
||
# 方式3:手动重启
|
||
# 1. 查找进程: ps aux | grep uvicorn
|
||
# 2. 停止服务: kill <PID>
|
||
# 3. 启动服务: ./start.sh
|
||
```
|
||
|
||
**注意**:
|
||
- 开发模式使用 `--reload` 参数,代码修改后自动重启
|
||
- 生产模式不使用 `--reload`,需要手动重启才能生效
|
||
- 重启脚本 `restart.sh` 会自动查找并重启服务
|
||
|
||
## API文档
|
||
|
||
启动后访问:
|
||
- Swagger UI: http://localhost:8000/docs
|
||
- ReDoc: http://localhost:8000/redoc
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
backend/
|
||
├── api/ # FastAPI应用
|
||
│ ├── main.py # 应用入口
|
||
│ ├── routes/ # 路由
|
||
│ └── models/ # API模型
|
||
├── database/ # 数据库
|
||
│ ├── connection.py
|
||
│ ├── models.py
|
||
│ └── init.sql
|
||
├── config_manager.py # 配置管理器
|
||
└── requirements.txt
|
||
```
|