架构实现V1.0

This commit is contained in:
geeker
2026-09-22 08:21:35 +08:00
parent 9179cc2da3
commit 8bb8c2d7b8
15 changed files with 2334 additions and 679 deletions
+50 -4
View File
@@ -1,11 +1,57 @@
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
from contextlib import asynccontextmanager
app = FastAPI()
from database import engine, SessionLocal
from models import Base
from routers import teachers, classes, students, scores, employment, stats
from seed import init_db, seed_data
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup: create tables and seed data
Base.metadata.create_all(bind=engine)
db = SessionLocal()
try:
seed_data(db)
finally:
db.close()
yield
app = FastAPI(
title="学生管理系统 API",
description="基于 FastAPI 的学生管理系统,支持学生、班级、老师、成绩、就业管理",
version="1.0.0",
lifespan=lifespan,
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Serve static frontend
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.get("/")
def main():
print("Hello from student-manage-system!")
async def index():
return FileResponse("static/index.html")
app.include_router(teachers.router)
app.include_router(classes.router)
app.include_router(students.router)
app.include_router(scores.router)
app.include_router(employment.router)
app.include_router(stats.router)
if __name__ == "__main__":
main()
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)