Browse Source

Подправил ридми и проверку на не пустые списки

master
VinokurovVE 8 months ago
parent
commit
b5761c5084
  1. 18
      README.md
  2. 48
      main.py

18
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"""
создать виртуальное окружение \
```python3 -m venv .venv``` \
подключиться к виртуальному окружению \
```.\.venv\Scripts\activate``` \
Загрузить библиотеки с файла `requirements.txt` \
```pip install -r requirements.txt``` \
в файле `.env.template` заменить на ваши данные и сохранить в `.env` \
Запустить приложение \
```main.py```

48
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.middleware.cors import CORSMiddleware
from fastapi.responses import ORJSONResponse, HTMLResponse from fastapi.responses import ORJSONResponse, HTMLResponse
from sqlmodel import create_engine, Field, SQLModel, UUID, DateTime, func, Column, text, bindparam 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("/") @router.delete("/")
async def delete_pk(acc_list: Sequence[UUID]): 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("/") @router.post("/")
async def add_agreement(agrees: Sequence[AgreementCreate]): 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) app.include_router(router)
if __name__ == "__main__": if __name__ == "__main__":

Loading…
Cancel
Save