From b5761c508403f0c5bd5b453e00b0471e717ee475 Mon Sep 17 00:00:00 2001 From: VinokurovVE Date: Mon, 23 Sep 2024 13:16:18 +0900 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=80=D0=B8=D0=B4=D0=BC=D0=B8=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=BF=D1=83=D1=81=D1=82=D1=8B=D0=B5=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 18 +++++++++--------- main.py | 48 +++++++++++++++++++++++++----------------------- 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index ed020c6..e679d1e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -создать виртуальное окружение -""python3 -m venv .venv""" -подключиться к виртуальному окружению -""".\.venv\Scripts\activate""" -Загрузить библиотеки с файла requirements.txt -"""pip install -r requirements.txt""" -в файле .env.template заменить на ваши данные и сохранить в .env -Запустить приложение -"""main.py""" \ No newline at end of file +создать виртуальное окружение \ +```python3 -m venv .venv``` \ +подключиться к виртуальному окружению \ +```.\.venv\Scripts\activate``` \ +Загрузить библиотеки с файла `requirements.txt` \ +```pip install -r requirements.txt``` \ +в файле `.env.template` заменить на ваши данные и сохранить в `.env` \ +Запустить приложение \ +```main.py``` \ No newline at end of file diff --git a/main.py b/main.py index 620e301..e2d7642 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -from fastapi import FastAPI, APIRouter, Request +from fastapi import FastAPI, APIRouter, Request, HTTPException from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import ORJSONResponse, HTMLResponse from sqlmodel import create_engine, Field, SQLModel, UUID, DateTime, func, Column, text, bindparam @@ -72,31 +72,33 @@ async def get_ageement(id_account: Optional[UUID] = None) -> Sequence[Agreement] @router.delete("/") async def delete_pk(acc_list: Sequence[UUID]): - with db_engine.begin() as con: - stmt = text("DELETE agreement WHERE id_account IN :acc_list") - params = {"acc_list":acc_list} - stmt = stmt.bindparams(bindparam('acc_list', expanding=True)) - con.execute(stmt, params) - return {"msg":"has deleted"} - + if acc_list: + with db_engine.begin() as con: + stmt = text("DELETE agreement WHERE id_account IN :acc_list") + params = {"acc_list":acc_list} + stmt = stmt.bindparams(bindparam('acc_list', expanding=True)) + con.execute(stmt, params) + return {"msg":"has deleted"} + raise HTTPException(405,"list is empty") @router.post("/") async def add_agreement(agrees: Sequence[AgreementCreate]): - with db_engine.begin() as con: - dict_list=[] - acc_list = [] - for agree in agrees: - agree_dict = agree.model_dump() - dict_list.append(agree_dict) - acc_id = agree_dict.get("id_account") - if acc_id not in acc_list: - acc_list.append(acc_id) - await delete_pk(acc_list) - stmt = insert(Agreement).values(dict_list) - con.execute(stmt) - con.commit() - return {"msg": "added succesfully"} - + if acc_list: + with db_engine.begin() as con: + dict_list=[] + acc_list = [] + for agree in agrees: + agree_dict = agree.model_dump() + dict_list.append(agree_dict) + acc_id = agree_dict.get("id_account") + if acc_id not in acc_list: + acc_list.append(acc_id) + await delete_pk(acc_list) + stmt = insert(Agreement).values(dict_list) + con.execute(stmt) + con.commit() + return {"msg": "added succesfully"} + raise HTTPException(405,"list is empty") app.include_router(router) if __name__ == "__main__":