第三版_完整

This commit is contained in:
jianqi
2026-09-14 11:51:13 +08:00
parent 40a269b751
commit 06c329fdd1
14 changed files with 6 additions and 31 deletions
-1
View File
@@ -1,6 +1,5 @@
# api/employ_api.py # api/employ_api.py
# 本文件定义 学生就业信息 的所有 API 路由(Controller 层) # 本文件定义 学生就业信息 的所有 API 路由(Controller 层)
from datetime import date
from typing import List from typing import List
from fastapi import APIRouter,HTTPException from fastapi import APIRouter,HTTPException
-2
View File
@@ -10,12 +10,10 @@ from sqlalchemy import func
from starlette import status from starlette import status
from database import get_db from database import get_db
from dao.users_dao import UserDAO
from dao.statistics_dao import StatisticsDao from dao.statistics_dao import StatisticsDao
from model.stu_model import StuInfo from model.stu_model import StuInfo
from scheme.statistics_scheme import StatsResponse, StuInfoAllExamAboveScore, FailingStudentItem, ClassExamAvgScoreItem, \ from scheme.statistics_scheme import StatsResponse, StuInfoAllExamAboveScore, FailingStudentItem, ClassExamAvgScoreItem, \
TopSalaryStudentItem, StudentEmpDurationItem, ClassAvgEmpDurationItem, StudentAgeDetailItem TopSalaryStudentItem, StudentEmpDurationItem, ClassAvgEmpDurationItem, StudentAgeDetailItem
from scheme.users import UserCreate, UserUpdate, UserResponse
router = APIRouter() router = APIRouter()
-1
View File
@@ -5,7 +5,6 @@ from sqlalchemy.orm import Session
from model.cls_mgmt_model import ClsMgmt from model.cls_mgmt_model import ClsMgmt
from scheme.cls_mgmt_scheme import ClsMgmtResponse, ClsMgmtCreate from scheme.cls_mgmt_scheme import ClsMgmtResponse, ClsMgmtCreate
from scheme.users import UserCreate, UserUpdate
from typing import Optional, List from typing import Optional, List
class ClsMgmtDAO: class ClsMgmtDAO:
-3
View File
@@ -2,15 +2,12 @@
# 本文件封装对 所有相关表的 所有数据库操作(统计查询) # 本文件封装对 所有相关表的 所有数据库操作(统计查询)
from collections import defaultdict from collections import defaultdict
from dns.entropy import between
from sqlalchemy.orm import Session, joinedload from sqlalchemy.orm import Session, joinedload
from sqlalchemy import func, case, and_, join, asc, desc from sqlalchemy import func, case, and_, join, asc, desc
from model import StudentEmployManage from model import StudentEmployManage
from model.stu_model import StuInfo from model.stu_model import StuInfo
from model.stu_score_model import StuScore from model.stu_score_model import StuScore
from model.users import User
from scheme.users import UserCreate, UserUpdate
from typing import Optional, List, Dict from typing import Optional, List, Dict
from scheme.statistics_scheme import StatsResponse, ExamScoreItem, StuInfoAllExamAboveScore, FailingStudentItem, \ from scheme.statistics_scheme import StatsResponse, ExamScoreItem, StuInfoAllExamAboveScore, FailingStudentItem, \
ClassExamAvgScoreItem, TopSalaryStudentItem, StudentEmpDurationItem, ClassAvgEmpDurationItem, StudentAgeDetailItem ClassExamAvgScoreItem, TopSalaryStudentItem, StudentEmpDurationItem, ClassAvgEmpDurationItem, StudentAgeDetailItem
-1
View File
@@ -3,7 +3,6 @@
from sqlalchemy import and_ from sqlalchemy import and_
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from model.stu_score_model import StuScore from model.stu_score_model import StuScore
# from scheme.stu_score_scheme import
from typing import Optional, List from typing import Optional, List
class StuScoreDAO: class StuScoreDAO:
-3
View File
@@ -1,8 +1,5 @@
# dao/teacher_dao.py # dao/teacher_dao.py
# 本文件封装对 tes_info 表的所有数据库操作(增、删、改、查) # 本文件封装对 tes_info 表的所有数据库操作(增、删、改、查)
from http.client import HTTPException
from typing import List, Optional
from sqlalchemy import or_ from sqlalchemy import or_
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
+1 -4
View File
@@ -4,8 +4,7 @@
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from database import engine, Base from api import statistics_api, stu_score_api, cls_mgmt_api, employ_api,stu_api, teacher_api # 导入 users 子路由
from api import users, statistics_api, stu_score_api, cls_mgmt_api, employ_api,stu_api, teacher_api # 导入 users 子路由
# 1. 创建数据库表(如果表不存在) # 1. 创建数据库表(如果表不存在)
# Base.metadata.create_all 会扫描所有继承 Base 的模型,生成对应的 CREATE TABLE 语句 # Base.metadata.create_all 会扫描所有继承 Base 的模型,生成对应的 CREATE TABLE 语句
@@ -29,8 +28,6 @@ app.add_middleware(
) )
# 4. 注册子路由 # 4. 注册子路由
# prefix 为路由前缀,所有用户接口都以 /api/users 开头
app.include_router(users.router, prefix="/api/users", tags=["用户管理"])
app.include_router(statistics_api.router, prefix="/api/stats", tags=["统计分析"]) app.include_router(statistics_api.router, prefix="/api/stats", tags=["统计分析"])
-1
View File
@@ -1,6 +1,5 @@
from sqlalchemy import Column, Integer, String, DateTime, Date, ForeignKey from sqlalchemy import Column, Integer, String, DateTime, Date, ForeignKey
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from database import Base from database import Base
+2 -3
View File
@@ -1,8 +1,7 @@
# import data # import data
from h11 import Data from h11 import Data
from pydantic import BaseModel, Field, ConfigDict,EmailStr from pydantic import BaseModel, Field
from datetime import datetime, date from datetime import date
from typing import Optional
# ---------- 请求模型 ---------- # ---------- 请求模型 ----------
class ClsMgmtCreate(BaseModel): class ClsMgmtCreate(BaseModel):
+1 -2
View File
@@ -3,8 +3,7 @@ from datetime import date
from decimal import Decimal from decimal import Decimal
from typing import List from typing import List
from pydantic import Field, field_validator, model_validator, ValidationError, BaseModel from pydantic import Field, model_validator, BaseModel
from database import Base
# ---------- -------------------------------请求模型 ------------------------------------------------ # ---------- -------------------------------请求模型 ------------------------------------------------
class YearMonthDay(BaseModel): class YearMonthDay(BaseModel):
+1 -1
View File
@@ -1,6 +1,6 @@
# scheme/statistics_scheme.py # scheme/statistics_scheme.py
from pydantic import BaseModel, Field, EmailStr from pydantic import BaseModel, Field, EmailStr
from datetime import datetime, date from datetime import date
from typing import Optional, List from typing import Optional, List
+1 -1
View File
@@ -1,5 +1,5 @@
from pydantic import BaseModel, Field, model_validator, field_validator, ConfigDict from pydantic import BaseModel, Field, model_validator, field_validator, ConfigDict
from datetime import date, datetime from datetime import date
from typing import Optional from typing import Optional
#id用cls_id来拼接生成,不用请求体过滤 #id用cls_id来拼接生成,不用请求体过滤
-4
View File
@@ -2,10 +2,6 @@
import decimal import decimal
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
# from datetime import datetime
# from typing import Optional
# ---------- 请求模型 ---------- # ---------- 请求模型 ----------
-4
View File
@@ -1,10 +1,6 @@
#老师表请求体模型 #老师表请求体模型
from http.client import HTTPException
from typing import Optional from typing import Optional
from fastapi.openapi.utils import status_code_ranges
from pydantic import Field, BaseModel, field_validator from pydantic import Field, BaseModel, field_validator
from database import Base # Base 在 database.py 中
#添加教师信息请求体 #添加教师信息请求体
class TeacherAdd(BaseModel): class TeacherAdd(BaseModel):