62 lines
1.8 KiB
Python
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) |