58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
# main0814.py
|
|
# 项目入口文件:创建 FastAPI 应用、注册路由、创建数据库表
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
from api import statistics_api, stu_score_api, cls_mgmt_api, employ_api,stu_api, teacher_api
|
|
|
|
# 1. 创建数据库表(如果表不存在)
|
|
# Base.metadata.create_all 会扫描所有继承 Base 的模型,生成对应的 CREATE TABLE 语句
|
|
# 对于 MySQL,它会根据模型定义自动生成建表语句(包括索引、约束等)
|
|
# Base.metadata.create_all(bind=engine)
|
|
|
|
# 2. 创建 FastAPI 实例
|
|
app = FastAPI(
|
|
title="码力全开: 学生管理系统",
|
|
description="本项目旨在开发一个基于 FastAPI 的学生管理系统,"
|
|
"提供学生基本信息管理、考核成绩管理、就业管理和统计分析四大核心功能模块。"
|
|
"系统将采用 RESTful API 设计,支持前后端分离架构。<br>",
|
|
version="0.141.1"
|
|
)
|
|
|
|
# 3. 添加跨域中间件(允许前端跨域请求)
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"], # 允许所有来源,生产环境应指定具体域名
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
# 4. 注册子路由
|
|
|
|
app.include_router(statistics_api.router, prefix="/api/stats", tags=["统计分析模块(动态查询与综合能力锻炼)"])
|
|
|
|
app.include_router(stu_score_api.router, prefix="/api/score", tags=["学生成绩管理模块"])
|
|
|
|
app.include_router(cls_mgmt_api.router, prefix="/api/classes", tags=["班级管理模块"])
|
|
|
|
app.include_router(employ_api.router,prefix="/api/employ",tags=["学生就业管理模块"])
|
|
|
|
app.include_router(teacher_api.router, prefix="/api/teacher", tags=["教师信息管理模块"])
|
|
|
|
app.include_router(stu_api.router, prefix="/api/student", tags=["学生信息管理模块"])
|
|
# 5. 根路径
|
|
@app.get("/")
|
|
async def root():
|
|
return {"message": "欢迎访问 码力全开: 学生管理系统 分层示例!请访问 /docs 查看 API 文档。"}
|
|
|
|
# 6. 如果直接运行此文件,启动 uvicorn 服务器
|
|
if __name__ == "__main__":
|
|
import uvicorn
|
|
uvicorn.run(
|
|
"main:app", # 指定应用位置(模块名:应用变量名)
|
|
host="localhost", # 监听所有网络接口
|
|
port=8001, # 端口
|
|
reload=True # 开发模式,代码变动自动重启
|
|
) |