1ed685cda6d5b5eae133d83c9020c82040ced408
工程围岩数据信息处理系统
基于 FastAPI + MySQL + SQLAlchemy 的工程围岩数据管理系统。
环境要求
- Python 3.12+
- MySQL 8.0+
安装
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt
配置
编辑 .env 文件:
APP_HOST=0.0.0.0
APP_PORT=8000
APP_DEBUG=true
# Railway数据库(账号表)
RAILWAY_DB_HOST=localhost
RAILWAY_DB_PORT=3306
RAILWAY_DB_USER=root
RAILWAY_DB_PASSWORD=your_password
RAILWAY_DB_NAME=railway
# Tunnel数据库(业务数据)
TUNNEL_DB_HOST=localhost
TUNNEL_DB_PORT=3306
TUNNEL_DB_USER=root
TUNNEL_DB_PASSWORD=your_password
TUNNEL_DB_NAME=Tunnel
运行
# 开发模式
python main.py
# 生产模式(Docker)
docker compose up -d
API 接口
所有接口均为 POST 类型,访问 /docs 查看完整文档。
工区数据
# 批量导入
POST /api/work_area/import
{
"account_id": 1,
"data": [
{"department_id": "D001", "parent_id": null, "type": "标段", "name": "一标段"}
]
}
# 查询
POST /api/work_area/query
{"account_id": 1, "type": "标段", "page": 1, "page_size": 20}
断面数据
# 批量导入
POST /api/section_data/import
{
"account_id": 1,
"data": [
{"section_id": "S001", "department_id": "D001", "mileage": "DK100+500", "rock_mass_classification": "III"}
]
}
# 查询
POST /api/section_data/query
{"account_id": 1, "department_id": "D001", "page": 1, "page_size": 20}
观测点数据
# 批量导入
POST /api/checkpoint/import
{
"account_id": 1,
"data": [
{"point_id": "P001", "section_id": "S001", "name": "拱顶沉降"}
]
}
# 按department查询(含断面里程和围岩级别)
POST /api/checkpoint/query_by_department
{"account_id": 1, "department_id": "D001", "page": 1, "page_size": 20}
量测数据
# 批量导入
POST /api/measurement_data/import
{
"account_id": 1,
"data": [
{"point_id": "P001", "monitoring_time": "2024-01-01T10:00:00", "cumulative_deformation": "5.2"}
]
}
# 按department查询(含断面里程、围岩级别、观测点名称)
POST /api/measurement_data/query_by_department
{"account_id": 1, "department_id": "D001", "page": 1, "page_size": 20}
数据库分表
业务数据按 account_id 分表存储:
work_area_{account_id}section_data_{account_id}checkpoint_{account_id}measurement_data_{account_id}
日志
日志文件位于 logs/ 目录:
access.log- 接口访问日志app.log- 业务日志database.log- 数据库日志
部署
chmod +x deploy.sh
./deploy.sh
Description
Languages
Python
98.3%
Shell
1%
Dockerfile
0.7%