diff --git a/app/api/common/view_img.py b/app/api/common/view_img.py index 1758742..e2f0108 100644 --- a/app/api/common/view_img.py +++ b/app/api/common/view_img.py @@ -4,7 +4,7 @@ from starlette.responses import FileResponse from sqlalchemy.orm import Session from app.model.crud.project_image_crud import get_img_url -from app.model.crud.project_detect_crud import get_detect_img_url +from app.model.crud.project_detect_crud import get_detect_img_url, get_log_img_url from app.config.config_reader import images_url from app.db.db_session import get_db @@ -75,4 +75,19 @@ def view_detect_thumb(image_id: int, session: Session = Depends(get_db)): return FileResponse(image_path, media_type='image/jpeg') +@view.get("/view_log_img/{image_id}") +def view_log_img(image_id: int, session: Session = Depends(get_db)): + """ + 查看推理完成后图片 + :param session: + :param image_id: 图片id + :return: + """ + url = get_log_img_url(image_id, session) + image_path = os.path.join(url) + # 检查文件是否存在以及是否是文件 + if not os.path.isfile(image_path): + raise HTTPException(status_code=404, detail="Image not found") + return FileResponse(image_path, media_type='image/jpeg') + diff --git a/app/application/token_middleware.py b/app/application/token_middleware.py index e1e1349..0daca71 100644 --- a/app/application/token_middleware.py +++ b/app/application/token_middleware.py @@ -5,7 +5,7 @@ from jwt import PyJWTError from app.common import reponse_code as rc from app.common import jwt_check as jc -green = ['/login', '/view_img', 'view_thumb'] +green = ['/login', '/view_img', 'view_thumb', 'view_detect_img', 'view_detect_thumb', 'view_log_img'] def check_green(s: str): diff --git a/app/model/crud/project_detect_crud.py b/app/model/crud/project_detect_crud.py index 03980bd..10d444a 100644 --- a/app/model/crud/project_detect_crud.py +++ b/app/model/crud/project_detect_crud.py @@ -171,3 +171,10 @@ def get_log_imgs(log_id: int, session: Session): result = [ProjectDetectLogImgOut.from_orm(img) for img in query.all()] return result + +def get_log_img_url(img_id: int, session: Session): + result = session.query(ProjectDetectLogImg).filter_by(id=img_id).first() + if result is None: + return None + else: + return result.image_url diff --git a/app/model/schemas/project_detect_schemas.py b/app/model/schemas/project_detect_schemas.py index c4a05b5..b38a3c3 100644 --- a/app/model/schemas/project_detect_schemas.py +++ b/app/model/schemas/project_detect_schemas.py @@ -64,7 +64,7 @@ class ProjectDetectLogOut(BaseModel): detect_version: Optional[str] detect_name: Optional[str] train_id: Optional[int] - train_version: Optional[int] + train_version: Optional[str] pt_type: Optional[str] create_time: Optional[datetime]