30 lines
720 B
Python
30 lines
720 B
Python
|
|
from pydantic import BaseModel, Field, field_validator
|
|
|
|
|
|
class GradeRequest(BaseModel):
|
|
stu_id:int = Field(description="学生编号")
|
|
exam_order:int = Field(description='考核序次')
|
|
score:float = Field(description='成绩')
|
|
|
|
@field_validator("score")
|
|
def check_score(cls, v):
|
|
if not (0 <= v <= 100):
|
|
raise ValueError("成绩必须在0~100之间")
|
|
return v
|
|
|
|
@field_validator("exam_order")
|
|
def check_exam_order(cls, v):
|
|
if v <= 0:
|
|
raise ValueError("考核序次必须大于0")
|
|
return v
|
|
|
|
class GradeResponse(BaseModel):
|
|
code: int = 200
|
|
detail: str = 'OK'
|
|
score_id: float
|
|
stu_id:int
|
|
exam_order:int
|
|
score:float
|
|
|