文章目录前言具体代码前言接着上一篇博客https://blog.csdn.net/weixin_44706420/article/details/162371783?spm1011.2124.3001.6209本文主要包含新增/修改/删除操作具体代码classAddBookRequest:TitleNoneAuthorNonePriceNone# 新增书籍asyncdefaddBook(request:AddBookRequest):asyncwithAsyncSessionLocal()assession:# 根据Title判断下书籍是否已经存在resultawaitsession.execute(select(exists().where(Book.Titlerequest.Title)))ifresult.scalar():return书籍已存在bookBook(**request.__dict__)book.Idstr(uuid.uuid4())session.add(book)awaitsession.commit()returnOKclassUpdateBookRequest:IdNoneTitleNoneAuthorNonePriceNone# 更新书籍信息asyncdefupdateBook(request:UpdateBookRequest):asyncwithAsyncSessionLocal()assession:bookawaitsession.get(Book,request.Id)ifbookisNone:return书籍信息不存在# book.Titlerequest.Title# book.Authorrequest.Authorbook.Pricerequest.Priceawaitsession.commit()returnOK# 根据ID删除书籍asyncdefdeleteBook(id):asyncwithAsyncSessionLocal()assession:bookawaitsession.get(Book,id)ifbookisNone:return书籍信息不存在awaitsession.delete(book)awaitsession.commit()returnOK# 批量更新书籍信息asyncdefbatchUpdateBooks(ids):asyncwithAsyncSessionLocal()assession:resultawaitsession.execute(select(Book).where(Book.Id.in_(ids)))booksresult.scalars().all()iflen(books)0orlen(books)!len(ids):return部分书籍不存在forbookinbooks:book.Price1awaitsession.commit()returnOK
Python Sqlalchemy学习——新增/修改/删除
文章目录前言具体代码前言接着上一篇博客https://blog.csdn.net/weixin_44706420/article/details/162371783?spm1011.2124.3001.6209本文主要包含新增/修改/删除操作具体代码classAddBookRequest:TitleNoneAuthorNonePriceNone# 新增书籍asyncdefaddBook(request:AddBookRequest):asyncwithAsyncSessionLocal()assession:# 根据Title判断下书籍是否已经存在resultawaitsession.execute(select(exists().where(Book.Titlerequest.Title)))ifresult.scalar():return书籍已存在bookBook(**request.__dict__)book.Idstr(uuid.uuid4())session.add(book)awaitsession.commit()returnOKclassUpdateBookRequest:IdNoneTitleNoneAuthorNonePriceNone# 更新书籍信息asyncdefupdateBook(request:UpdateBookRequest):asyncwithAsyncSessionLocal()assession:bookawaitsession.get(Book,request.Id)ifbookisNone:return书籍信息不存在# book.Titlerequest.Title# book.Authorrequest.Authorbook.Pricerequest.Priceawaitsession.commit()returnOK# 根据ID删除书籍asyncdefdeleteBook(id):asyncwithAsyncSessionLocal()assession:bookawaitsession.get(Book,id)ifbookisNone:return书籍信息不存在awaitsession.delete(book)awaitsession.commit()returnOK# 批量更新书籍信息asyncdefbatchUpdateBooks(ids):asyncwithAsyncSessionLocal()assession:resultawaitsession.execute(select(Book).where(Book.Id.in_(ids)))booksresult.scalars().all()iflen(books)0orlen(books)!len(ids):return部分书籍不存在forbookinbooks:book.Price1awaitsession.commit()returnOK