架构实现V1.0
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user