From 1f5cecc5ed0b3f0e784388f1d0549f285c3d6287 Mon Sep 17 00:00:00 2001 From: sunyugang Date: Wed, 26 Feb 2025 10:04:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ app/api/business/project_train_api.py | 15 +++++++++++---- app/application/app.py | 1 - app/model/crud/project_image_crud.py | 2 +- app/model/schemas/project_image_schemas.py | 8 +++++--- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 0dbf2f2..5f95496 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ __pycache__/ *.py[cod] *$py.class +.idea + # C extensions *.so diff --git a/app/api/business/project_train_api.py b/app/api/business/project_train_api.py index 85fdd3e..76353f1 100644 --- a/app/api/business/project_train_api.py +++ b/app/api/business/project_train_api.py @@ -15,6 +15,7 @@ from app.db.db_session import get_db from typing import List from fastapi import APIRouter, Depends, Request, UploadFile, File, Form from fastapi.responses import StreamingResponse +from fastapi.encoders import jsonable_encoder from sqlalchemy.orm import Session """项目管理API""" @@ -155,7 +156,8 @@ def get_image_list(project_id: int, session: Session = Depends(get_db)): :return: """ image_list = pimc.get_image_list(project_id, session) - return rc.response_success(data=image_list) + result = jsonable_encoder(image_list) + return rc.response_success(data=result) @project.post("/save_img_label") @@ -170,7 +172,7 @@ def save_img_label(img_leafer_label: ProjectImgLeaferLabel, session: Session = D return rc.response_success(msg="保存成功") -@project.get("/get_img_leafer/{imager_id}") +@project.get("/get_img_leafer/{image_id}") def get_img_leafer(image_id: int, session: Session = Depends(get_db)): """ 根据图片id查询图片的leafer信息 @@ -179,7 +181,10 @@ def get_img_leafer(image_id: int, session: Session = Depends(get_db)): :return: """ img_leafer_out = ps.get_img_leafer(image_id, session) - return rc.response_success(data=img_leafer_out.leafer) + if img_leafer_out is None: + return rc.response_success() + else: + return rc.response_success(data=img_leafer_out['leafer']) @project.get("/run_train/{project_id}") @@ -201,6 +206,7 @@ async def run_train(project_id: int, session: Session = Depends(get_db)): media_type="text/plain") +@project.get("/get_train_list/{project_id}") def get_train_list(project_id: int, session: Session = Depends(get_db)): """ 根据项目id,获取训练列表 @@ -209,7 +215,8 @@ def get_train_list(project_id: int, session: Session = Depends(get_db)): :return: """ train_list = ptnc.get_train_list(project_id, session) - return rc.response_success(data=train_list) + result = jsonable_encoder(train_list) + return rc.response_success(data=result) diff --git a/app/application/app.py b/app/application/app.py index a22bc2a..da5e783 100644 --- a/app/application/app.py +++ b/app/application/app.py @@ -3,7 +3,6 @@ from fastapi.middleware.cors import CORSMiddleware from app.application.token_middleware import TokenMiddleware from app.application.logger_middleware import LoggerMiddleware - from app.api.common.upload_file import upload_files from app.api.sys.login_api import login from app.api.sys.sys_user_api import user diff --git a/app/model/crud/project_image_crud.py b/app/model/crud/project_image_crud.py index d9cbe20..22a90e8 100644 --- a/app/model/crud/project_image_crud.py +++ b/app/model/crud/project_image_crud.py @@ -44,7 +44,7 @@ def get_img_url(image_id: int, session: Session): def get_image_list(project_id: int, session: Session): query = session.query(piModel).filter(piModel.project_id == project_id).order_by(asc(piModel.id)) - image_list = [ProjectImage.from_orm(image).dict() for image in query.all()] + image_list = [ProjectImage.from_orm(image) for image in query.all()] return image_list diff --git a/app/model/schemas/project_image_schemas.py b/app/model/schemas/project_image_schemas.py index dd3af2d..2c117c1 100644 --- a/app/model/schemas/project_image_schemas.py +++ b/app/model/schemas/project_image_schemas.py @@ -1,5 +1,4 @@ -import datetime - +from datetime import datetime from pydantic import BaseModel, Field from typing import Optional, List @@ -8,10 +7,13 @@ class ProjectImage(BaseModel): id: Optional[int] = Field(None, description="id") project_id: Optional[int] = Field(..., description="项目id") file_name: Optional[str] = Field(None, description="文件名称") - create_time: Optional[datetime.datetime] = Field(None, description="上传时间") + create_time: Optional[datetime] = Field(None, description="上传时间") class Config: orm_mode = True + json_encoders = { + datetime: lambda v: v.strftime("%Y-%m-%d %H:%M:%S") + } class ProjectImagePager(BaseModel):