import os import uvicorn from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.middleware.cors import CORSMiddleware from database import engine, Base #导入模型 from model.classes_model import Classes from model.student_info import Student from model.scores import Scores from model.employments import Employments from model.teachers import Teacher from model.counselor import Counselor #导入路由 from api import student as student_api from api import score as score_api from api import employment as employment_api from api import analysis as analysis_api from api import teachers as teachers_api from api import class_api from api import counselor_api #创建 FastAPI 应用 app = FastAPI(title="学生管理系统API", version="1.0") #配置跨域 app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) #注册路由 app.include_router(student_api.router) app.include_router(score_api.router) app.include_router(employment_api.router) app.include_router(analysis_api.router) app.include_router(teachers_api.router) app.include_router(class_api.router) app.include_router(counselor_api.router) #挂载前端静态文件 if not os.path.exists("static"): os.makedirs("static") app.mount("/ui", StaticFiles(directory="static", html=True), name="static") @app.get("/") def root(): return {"message": "欢迎使用沃林学生管理系统,前端请访问 http://127.0.0.1:8001/ui/"} if __name__ == "__main__": # 建表 Base.metadata.create_all(bind=engine) # host 必须为 0.0.0.0 才能在 Docker 容器外访问;本地运行 127.0.0.1:8001 依然有效 host = os.getenv("HOST", "0.0.0.0") port = int(os.getenv("PORT", "8001")) uvicorn.run("main:app", host=host, port=port, reload=False)