Подправил ридми и проверку на не пустые списки
This commit is contained in:
18
README.md
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
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__":
|
||||
|
Reference in New Issue
Block a user