第三版_完整
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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,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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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,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,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来拼接生成,不用请求体过滤
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ---------- 请求模型 ----------
|
# ---------- 请求模型 ----------
|
||||||
|
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user