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.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__":

Loading…
Cancel
Save