Files
2026-09-21 17:39:16 +08:00

62 lines
1.8 KiB
Python

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)