Merge pull request 'Li yujie' (#12) from LI_YUJIE into main
Reviewed-on: #12
This commit is contained in:
@@ -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
@@ -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,
|
||||
|
||||
@@ -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,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)
|
||||
#-------------张义---------------
|
||||
|
||||
#-------------薄鑫---------------
|
||||
|
||||
@@ -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则表示已删除
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user