Sqlalchemy中的事務

2021-10-01 11:05:52 字數 746 閱讀 9620

from flask import flask

from flask_sqlalchemy import sqlalchemy

class user(db.model):

id = db.column(db.integer, primary_key=true)

name = db.column(db.string(20))

age = db.column(db.smallinteger)

"""sqlalchemy中的事務

1) 會自動建立隱式的事務,將sql操作新增到事務中

2) 增刪改操作完,需要提交事務,如果失敗會自動回滾

3) 查詢完,會自動回滾

4) 也可以手動回滾,以及手動新增鎖

"""db.drop_all()

db.create_all()

# 需求: 使用者<10時,才能新增資料

user1 = user(name='zs', age=30)

db.session.add(user1)

# 判斷使用者數是否<10  排它鎖 with_for_update()  共享鎖 with_for_update(read=true)

if user.query.with_for_update().count() < 10:

db.session.commit()

else:

db.session.rollback()   # 手動回滾

return "index"

python中sqlalchemy模組的使用二

廢話不多說,咱們直接上 1 使用in查詢 def use in session dbsession users session.query user filter user.name.in zhangsan lisi all print user for user in users 執行結果 sql...

sqlalchemy 中 desc 的使用

是這樣 items item.query.order by item.date.desc all 而不是這樣 items item.query.order by desc item.date all 更不是說了一大堆sqlalchemy的查詢方式別人看半天也沒找到自己需要的。sqlalchemy 中...

SQLAlchemy多執行緒下事務隔離機制詳解

通過開啟多執行緒,併發查詢訂單詳情資訊,通過將不同訂單物件傳送給不同執行緒,執行完所需要的業務邏輯之後,對訂單物件的資料進行修改,然後執行 commit,查詢資料庫發現資料沒有更新,且後台日誌沒有任何的報錯 錯誤 from concurrent.futures import threadpoolex...