• 数据库插入失败 和回滚


    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("这本书已添加至您的赠送清单或已存在你的心愿清单")

  • 相关阅读:
    Python将字符串转换成字典
    MySQL索引、视图
    MySQL高级查询
    MySQL函数应用
    MySQL约束
    MySQL基础查询
    MySQL数据库基本语法
    MySQL数据库存储引擎
    MySQL数据库简介与命令行操作
    MySQL 安装和配置环境变量
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/12970077.html
Copyright © 2020-2023  润新知