def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): # 这里是判断是否是在用户的清单中 # 如果存储出错,实行事务回滚 # try: # gift = Gift() # gift.isbn = isbn # gift.uid = current_user.id # 获取当前用户的ID,该用户存储在LoginManger中 # current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] # 增加鱼豆的数量 # db.session.add(gift) # db.session.commit() # except Exception as e: # db.session.rollback() # raise e with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id # 获取当前用户的ID,该用户存储在LoginManger中 current_user.beans += current_app.config[ 'BEANS_UPLOAD_ONE_BOOK'] # 增加鱼豆的数量 db.session.add(gift) else: print('这本书已经添加到你要赠送的清单或已经存在于你的心愿清单,请不要重复添加!') flash('这本书已经添加到你要赠送的清单或已经存在于你的心愿清单,请不要重复添加!') # 赠送成功后跳转到原书本详情页面 return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gift(isbn): if current_user.can_save_to_list(isbn): ''' # 事务 try: gift = Gift() gift.isbn = isbn # User模型里实现的方法 gift.uid = current_user.id # 加鱼豆 current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) # 上面操作了两张表,SQLAlchemy天然支持事务 db.session.commit() except Exception as e: # 如果不回滚,那么这次和后续的插入都会失败 db.session.rollback() raise e ''' with db.auto_commit(): gift = Gift() gift.isbn = isbn # User模型里实现的方法 gift.uid = current_user.id # 加鱼豆 current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('你当前有赠送这本书或你心愿清单里有这本书') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): """ 赠送 礼物, 书籍 :param isbn: :return: # 数据库事务 sqlalchemy 事务操作 回滚 rollback """ if current_user.can_save_tolist(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id # xxxxerror current_user.beans += BEANS_UPLOAD_ONE_BOOK db.session.add(gift) else: flash("这本书已经添加到你的赠送清单里面了. Sorry,can't save isbn:{}".format(isbn)) # return "sorry,can't save isbn:{}".format(isbn) return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): ''' check if isbn valid check if book exists :param isbn: :return: ''' if current_user.can_save_to_list(isbn): # transaction # enable consistency # rollback # try: with db.auto_commit(): # here the code is what do after yield gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) # db.session.commit() # except Exception as e: # db.session.rollback() # raise e else: flash('already added to your wish list or gift list!') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) """ try: gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) db.session.commit() except Exception as e: db.session.rollback() raise e """ else: flash('这本书已添加至你的赠送清单或存在于你的心愿清单,请不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gift(bid): # 事务 with db.auto_commit(): gift = Gift() gift.bid = bid gift.uid = current_user.id current_user.beans = 1 db.session.add(gift) return 'ok'
def save_to_gifts(isbn): gift = Gift() gift.isbn = isbn gift.uid = current_user.id # current_user.beans += 0.5 current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) db.session.commit() pass
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('这本书已经添加到你的赠送清单或已经存在与你的心愿清单,请不要重复添加')
def save_to_wish(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id db.session.add(gift) else: flash('这本书已添加至您的赠送清单或者心愿清单,请勿重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('不要重复赠送书籍或添加愿望清单')
def save_gift(isbn): if current_user.can_save_to_gift: with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: return jsonify(saved=0) return jsonify(saved=1)
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): #判断能否存入赠送清单 with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id #一个实例化后的User的模型,通过模型中的get_user来转化为一个模型 current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('这本书已经在你的心愿清单了') return redirect(url_for('web.book_detail', isbn=isbn)) #赠送成功后重定向到当前书籍页面
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('赠送清单或心愿清单已存在,请不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config["BEANS_UPLOAD_BOOK"] db.session.add(gift) else: flash("这本书已添加至你的赠送清单或已存在于你的心愿清单") return redirect(url_for("web.book_detail", isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_db(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash("这本书已经添加至你的赠送清单或者已经存在于你的心愿清单,请勿重复添加。") return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.coins += current_app.config['COINS_UPLOAD_ONE_BOOK'] current_user.send_counter += 1 db.session.add(gift) else: flash('不要重复添加!') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_saveto_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] gift.uid = current_user.id db.session.add(gift) else: flash('这本书已存在于你的心愿单或者赠送清单,请勿重复添加') # 视图函数必须要返回值 return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): # database transaction gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('already added into gift or wish') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): # 通过自定义的上下文管理器来实现自动提交和回滚 gift = Gift() gift.isbn = isbn gift.uid = current_user.id # 通过flask_login来获取uid,事实上flask_login只把uid存储在cookie中,然后通过models/user中的1.1来进行数据读取 current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('这本书已经添加至你的赠送清单或已存在于你的心愿清单,请不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def create(isbn): uid = g.user.uid with db.auto_commit(): Book.query.filter_by(isbn=isbn).first() gift = Gift.query.filter_by(uid=uid, isbn=isbn, launched=False).first() if gift: raise DuplicateGift() gift = Gift() gift.uid = uid gift.isbn = isbn db.session.add(gift) return Success()
def create(isbn): uid = g.user.uid # 拿到当前需要赠送礼物的uid号 with db.auto_commit(): Book.query.filter_by(isbn=isbn).first_or_404() #检测是否是在数据库中 gift = Gift.query.filter_by(isbn=isbn, uid=uid).first() if gift: # 检测是否重复 raise DuplicateGift() gift = Gift() gift.isbn = isbn gift.uid = uid db.session.add(gift) return Success()
def create(isbn): uid = g.user.uid with db.auto_commit(): Book.query.filter_by(isbn=isbn).first_or_404() gift = Gift.query.filter_by(isbn=isbn, uid=uid).first() if gift: raise DuplicateGift() gift = Gift() gift.isbn = isbn gift.uid = uid db.session.add(gift) return Success()
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): # auto_commit为自定义上下文管理器 with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash("书籍已经存在心愿清单或者愿望清单中") return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): yushu_book = YuShuBook() yushu_book.search_by_isbn(isbn) if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.uid = current_user.id gift.isbn = isbn db.session.add(gift) current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] else: flash('这本书已添加至你的赠送清单或已存在于你的心愿清单,请不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('this book already in the list , do not add it again') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash("这本书以添加进您的赠送清单或已经存在于您的心愿清单,请不要重复添加") return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): # 事务 回滚 # try: with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_BOOK'] db.session.add(gift) else: flash('这本书已添加至你的礼物清单或已经存在与你的心愿清单') return redirect(url_for('web.book_detail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): #Transactions #rollback with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('This book is already in your gift list or wish list') return redirect(url_for('web.book_datail', isbn=isbn))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): # 事务,操作了两个表。虽然只有 commit 才会提交,但是依然需要 rollback,否则后面的都会报错 with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id # ------------------------- current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('这本书已经在你的清单里,不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def create_gift(isbn): uid = g.user.uid with db.auto_commit(): Book.query.filter_by(isbn=isbn).first_or_404() gift = Gift.query.filter_by(isbn=isbn, uid=uid, launched=False).first() wish = Wish.query.filter_by(isbn=isbn, uid=uid, launched=False).first() if gift or wish: raise DuplicateGift() gift = Gift() gift.isbn = isbn gift.uid = uid db.session.add(gift) return Success(code=201)
def save_to_gifts(isbn): if current_user.can_save_to_list(): try: gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_PER_UPLOAD'] db.session.add(gift) db.session.commit() except Exception as e: db.session.rollback() else: flash('The book is already in wishlist.')
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): # 事务,保证user和gift的一致性,rollback # try: with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id ################################################# current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) # db.session.commit() # except Exception as e: # db.session.rollback() # raise e else: flash('这本书已经添加至你的赠送清单或者一存在于你的心愿清单,请不要重复添加') return redirect('web.book_detail', isbn=isbn)