Merge pull request 'Li yujie' (#12) from LI_YUJIE into main

Reviewed-on: #12
This commit is contained in:
2026-09-21 14:25:28 +08:00
6 changed files with 96 additions and 2 deletions
+14
View File
@@ -0,0 +1,14 @@
from fastapi import APIRouter,Depends,HTTPException
from sqlalchemy.orm import Session
from dao.student import *
from schemas.student import StudentCreate
student_router = APIRouter()
@student_router.post("/student")
def create_student(request:StudentCreate,db:Session,create = Depends(create_students)):
d = request.model_dump()
r = create_students(d,db)
if not r:
raise HTTPException(status_code=500,detail='服务器繁忙,请稍后添加!')
return {'code':200,'detail':"添加学生成功"}
+1 -1
View File
@@ -17,7 +17,7 @@ IP:localhost
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker,declarative_base
from .config import (
from core.config import (
database_connect_user,
database_connect_password,
database_connect_ip,
+16
View File
@@ -0,0 +1,16 @@
from schemas.student import *
from core.database import get_db
from models.student import *
from utils.code_generator import generate_no
def create_students(d,db):
stu = Student(**d)
try:
db.add(stu)
generate_no("student_no", "STU", stu, db)
db.commit()
except:return False
else:
return True
+2 -1
View File
@@ -2,6 +2,7 @@ from fastapi import FastAPI
from api.example import example_router
from middleware import log_middleware
import uvicorn
from api.student import student_router
app = FastAPI()
app.middleware("http")(log_middleware)
@@ -10,7 +11,7 @@ from api.class_api import classes_router
app.include_router(classes_router,tags=['班级接口'],prefix="/classes")
#-------------李玉杰--------------
app.include_router(student_router)
#-------------张义---------------
#-------------薄鑫---------------
+45
View File
@@ -0,0 +1,45 @@
from core.database import Base
from sqlalchemy import *
from datetime import datetime
class Student(Base):
__tablename__ = 'student_info_detail'
id = Column(Integer
, primary_key=True
, autoincrement=True
, comment = '学生编号,自增主键'
)
student_no = Column(VARCHAR(50)
, unique = True)
student_name = Column(VARCHAR(50))
class_id = Column(Integer
,foreign_key = 'class_info_detail.id'
)#外键约束 班级表的主键id,存在这个班级,学生表才可以输入
consultant_id = Column(Integer
,nullable = True
,foreign_key = 'consultant_info_detail.id'
)#外键约束 顾问表的主键id,存在这个顾问,才可以写入,允许为空
native_place = Column(VARCHAR(100)
,nullable = True)
graduation_school = Column(VARCHAR(100)
,nullable = True)
major = Column(VARCHAR(100)
,nullable = True)
enrollment_date = Column(Date
,nullable = False)#入学时间必填
graduation_date = Column(Date,
nullable = True)#毕业时间可以为空
education = Column(VARCHAR(50)
,nullable = True)#学历可以为空
age = Column(Integer
,nullable = False)
gender = Column(VARCHAR(10)
,nullable = False)
create_at = Column(DATETIME
,default = datetime.now)
update_at = Column(DATETIME
,default = datetime.now
,onupdate = datetime.now)
is_deleted = Column(Integer
,default = 0)#逻辑删除,默认为0,为1则表示已删除
+18
View File
@@ -0,0 +1,18 @@
from pydantic import BaseModel
from datetime import date
class StudentCreate(BaseModel):
student_no: str|None = None
student_name: str
class_id: int
consultant_id: int | None = None
native_place: str | None = None
graduate_school: str | None = None
major: str | None = None
enrollment_date: date
graduation_date: date | None = None
education: str | None = None
age: int
gender: str