Files
xs_system/main.py
T

42 lines
1.6 KiB
Python
Raw Normal View History

2026-09-23 09:28:16 +08:00
# ============================================================
# 项目入口主文件 — FastAPI 应用启动与路由装配
# 职责:
# 1. 初始化 ORM 引擎,自动建表
# 2. 创建 FastAPI 实例并配置跨域中间件
# 3. 挂载 API 路由和 HTTP 请求日志中间件
# 4. 通过 uvicorn 启动服务
# ============================================================
2026-09-22 19:00:51 +08:00
from fastapi import FastAPI
2026-09-22 20:18:44 +08:00
from fastapi.middleware.cors import CORSMiddleware
2026-09-22 19:00:51 +08:00
from database import engine, Base
from api.statistics_api import BasicInformationAPI
2026-09-23 09:28:16 +08:00
from HttpLog import m1
from model import statistics_model # 必须导入,触发 SQLAlchemy 把模型注册到 Base.metadata
2026-09-22 19:00:51 +08:00
2026-09-23 09:28:16 +08:00
# 根据 model 中定义的 ORM 模型,在数据库中创建所有表(若已存在则跳过)
Base.metadata.create_all(engine)
# 创建 FastAPI 应用实例
2026-09-22 19:00:51 +08:00
app = FastAPI()
2026-09-23 09:28:16 +08:00
# 配置跨域中间件:允许任意来源、任意方法、任意请求头
# 解决前端开发时浏览器的同源策略拦截问题
2026-09-22 20:18:44 +08:00
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
2026-09-23 09:28:16 +08:00
# 将统计分析模块的路由挂载到主应用,所有路由前缀在路由文件内定义
2026-09-22 19:00:51 +08:00
app.include_router(BasicInformationAPI)
2026-09-23 09:28:16 +08:00
# 注册 HTTP 请求日志中间件:对每一次请求记录方法、地址、参数、响应和耗时
app.middleware('http')(m1)
2026-09-22 19:00:51 +08:00
2026-09-23 09:28:16 +08:00
# 直接运行本文件时,用 uvicorn 启动开发服务器
# 地址:http://127.0.0.1:12345
2026-09-22 19:00:51 +08:00
if __name__ == '__main__':
import uvicorn
2026-09-23 09:28:16 +08:00
uvicorn.run("main:app", host='127.0.0.1', port=12345)