From c552efe9e230cdf52afcf990b6092cfb25e8fd09 Mon Sep 17 00:00:00 2001 From: quantulr <35954003+quantulr@users.noreply.github.com> Date: Wed, 19 Oct 2022 23:23:24 +0800 Subject: [PATCH] delete image --- pics_server/routers/image.py | 13 +++++++++++++ pics_server/sql/crud.py | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/pics_server/routers/image.py b/pics_server/routers/image.py index 6b6f45e..29ab314 100644 --- a/pics_server/routers/image.py +++ b/pics_server/routers/image.py @@ -50,6 +50,19 @@ def get_image(store_name: str, y: str, m: str, d: str, db: Session = Depends(get return StreamingResponse(content=img_resp, media_type=media_type, headers={'Content-Disposition': f'inline; filename={ori_file_name}'}) +@router.delete("/image/delete/{pic_id}", tags=['图片']) +def delete_image(pic_id: int, db: Session = Depends(get_db)): + image_path = crud.get_pic(db, pic_id=pic_id).file_path + try: + db_pic = crud.delete_pic(db, pic_id=pic_id) + except: + raise HTTPException(status_code=500, detail="无法连接数据库") + store_path = Path(Path.home()).joinpath( + 'Pictures').joinpath('upload_images').joinpath(image_path) + store_path.unlink() + return db_pic + + @router.get("/image/thumbnail/{y}/{m}/{d}/{store_name}", tags=['图片']) def get_image_thumb(store_name: str, y: str, m: str, d: str, db: Session = Depends(get_db)): image_path = Path(Path.home()).joinpath( diff --git a/pics_server/sql/crud.py b/pics_server/sql/crud.py index a244632..40f883f 100644 --- a/pics_server/sql/crud.py +++ b/pics_server/sql/crud.py @@ -21,3 +21,11 @@ def create_pic(db: Session, pic: schemas.image.ImageCreate): db.add(db_pic) db.commit() return db_pic + + +def delete_pic(db: Session, pic_id: int): + db_pic = db.query(models.image.Image).filter( + models.image.Image.id == pic_id).first() + db.delete(db_pic) + db.commit() + return db_pic