完成了添加学生接口的自动生成studentno功能
This commit is contained in:
+28
-28
@@ -1,28 +1,28 @@
|
||||
from fastapi import APIRouter,HTTPException,Depends
|
||||
from DoubaoTeam.core.database import get_db
|
||||
from DoubaoTeam.models.student import Student
|
||||
from DoubaoTeam.models.score import Score
|
||||
from DoubaoTeam.dao.statistics import *
|
||||
from DoubaoTeam.schemas.common import SuccessResponse
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
statistics_router=APIRouter()
|
||||
|
||||
|
||||
@statistics_router.get("/scores/age-over-30",response_model=SuccessResponse)
|
||||
def api_age_over_thirty(db:Session=Depends(get_db)):
|
||||
try:
|
||||
age_over_thirty_list=age_over_thirty(Student,db)
|
||||
return SuccessResponse(status_code=200,msg=age_over_thirty_list)
|
||||
except NoExist as e:
|
||||
raise HTTPException(status_code=404,detail=str(e))
|
||||
# 这边功能函数返回的是一个字典
|
||||
@statistics_router.get("/classes/gender-count",response_model=SuccessResponse)
|
||||
def api_gender_count(db:Session=Depends(get_db)):
|
||||
try:
|
||||
result = gender_count(Student,db)
|
||||
return SuccessResponse(status_code=200,msg=result)
|
||||
except NoExist as e:
|
||||
raise HTTPException(status_code=404,detail=str(e))
|
||||
|
||||
# from fastapi import APIRouter,HTTPException,Depends
|
||||
# from DoubaoTeam.core.database import get_db
|
||||
# from DoubaoTeam.models.student import Student
|
||||
# from DoubaoTeam.models.score import Score
|
||||
# from DoubaoTeam.dao.statistics import *
|
||||
# from DoubaoTeam.schemas.common import SuccessResponse
|
||||
# from sqlalchemy.orm import Session
|
||||
#
|
||||
#
|
||||
# statistics_router=APIRouter()
|
||||
#
|
||||
#
|
||||
# @statistics_router.get("/scores/age-over-30",response_model=SuccessResponse)
|
||||
# def api_age_over_thirty(db:Session=Depends(get_db)):
|
||||
# try:
|
||||
# age_over_thirty_list=age_over_thirty(Student,db)
|
||||
# return SuccessResponse(status_code=200,msg=age_over_thirty_list)
|
||||
# except NoExist as e:
|
||||
# raise HTTPException(status_code=404,detail=str(e))
|
||||
# # 这边功能函数返回的是一个字典
|
||||
# @statistics_router.get("/classes/gender-count",response_model=SuccessResponse)
|
||||
# def api_gender_count(db:Session=Depends(get_db)):
|
||||
# try:
|
||||
# result = gender_count(Student,db)
|
||||
# return SuccessResponse(status_code=200,msg=result)
|
||||
# except NoExist as e:
|
||||
# raise HTTPException(status_code=404,detail=str(e))
|
||||
#
|
||||
|
||||
@@ -14,3 +14,4 @@ def create_student(request:StudentCreate,db:Session = Depends(get_db)):
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+4
-12
@@ -8,25 +8,17 @@ def create_students(d: dict, db: Session):
|
||||
stu = Student(**d)
|
||||
|
||||
try:
|
||||
# 1. 添加到 Session
|
||||
db.add(stu)
|
||||
|
||||
# 2. flush,让 MySQL 先生成自增 id
|
||||
# 把 SQL 发给数据库执行
|
||||
db.flush()
|
||||
|
||||
# 3. 根据 id 生成学生编号
|
||||
# 根据 id 生成学生编号
|
||||
if not stu.student_no:
|
||||
stu.student_no = f"STU{stu.id:04d}"
|
||||
|
||||
# 4. 提交事务
|
||||
db.commit()
|
||||
|
||||
# 5. 刷新对象,拿到数据库最终数据
|
||||
db.refresh(stu)
|
||||
|
||||
return stu
|
||||
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
print(f"插入学生失败: {e}")
|
||||
return None
|
||||
return None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user