數據庫插入失敗 和回滾


from app.web import web
from flask_login import login_required,current_user
from flask import current_app
from app.models.gift import Gift
from models.base import db

 

@web.route('/gifts/book/<isbn>')
@login_required
def save_to_gifts(isbn):
  if current_user.can_save_to_list(isbn):
    try:
      gift = Gift()
      gift.isbn=isbn
      #獲取當前用戶的id
      gift.uid=current_user.id
      current_user.beans += current_app.config["BEANS_UPLOAD_ONE_BOOK"]    #這里調用current_user 為啥不用傳入add 神奇,估計是自帶add 語句
      db.session.add(gift)
      db.session.commit()     #當執行到這步的時候,數據才會插入到數據庫
    except Exception as e:
      #事務回滾
      db.session.rollback()  #當commit()  失敗后要執行回滾,不然下一個操作也會失敗

      raise e
  else:
    flash("這本書已添加至您的贈送清單或已存在你的心願清單")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM