文章目录
前言
接着上一篇博客https://blog.csdn.net/weixin_44706420/article/details/162371783?spm=1011.2124.3001.6209,本文主要包含新增/修改/删除操作
具体代码
python
class AddBookRequest:
Title=None
Author=None
Price=None
# 新增书籍
async def addBook(request:AddBookRequest):
async with AsyncSessionLocal() as session:
# 根据Title判断下书籍是否已经存在
result=await session.execute(select(exists().where(Book.Title == request.Title)))
if result.scalar():
return "书籍已存在"
book=Book(**request.__dict__)
book.Id=str(uuid.uuid4())
session.add(book)
await session.commit()
return "OK"
class UpdateBookRequest:
Id=None
Title=None
Author=None
Price=None
# 更新书籍信息
async def updateBook(request:UpdateBookRequest):
async with AsyncSessionLocal() as session:
book=await session.get(Book,request.Id)
if book is None:
return "书籍信息不存在"
# book.Title=request.Title
# book.Author=request.Author
book.Price=request.Price
await session.commit()
return "OK"
# 根据ID删除书籍
async def deleteBook(id):
async with AsyncSessionLocal() as session:
book=await session.get(Book,id)
if book is None:
return "书籍信息不存在"
await session.delete(book)
await session.commit()
return "OK"
# 批量更新书籍信息
async def batchUpdateBooks(ids):
async with AsyncSessionLocal() as session:
result=await session.execute(select(Book).where(Book.Id.in_(ids)))
books=result.scalars().all()
if len(books)==0 or len(books)!=len(ids):
return "部分书籍不存在"
for book in books:
book.Price+=1
await session.commit()
return "OK"