亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實現(xiàn)完整的事務(wù)操作示例

 更新時間:2017年06月20日 08:31:32   作者:北京流浪兒  
這篇文章主要介紹了Python實現(xiàn)完整的事務(wù)操作,結(jié)合實例形式分析了Python操作mysql數(shù)據(jù)庫相關(guān)事務(wù)操作的具體流程與實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Python事務(wù)操作實現(xiàn)方法。分享給大家供大家參考,具體如下:

#coding=utf-8
import sys
import MySQLdb
class TransferMoney(object):
  def __init__(self,conn):
    self.conn = conn
  #檢查賬戶是否合法
  def check_acct_avaiable(self,acctid):
    cursor = self.conn.cursor()
    try:
      sql = "select * from account where acctid=%s" % acctid
      cursor.execute(sql)
      print "check account:" + sql
      rs = cursor.fetchall()
      if len(rs) != 1:
        raise Exception("account %s illega" % acctid)
    finally:
      cursor.close()
  #檢查是否有足夠的錢
  def has_enough_money(self,acctid,money):
    cursor = self.conn.cursor()
    try:
      sql = "select * from account where acctid=%s and money > %s" % (acctid,money)
      cursor.execute(sql)
      print "has enough money:" + sql
      rs = cursor.fetchall()
      if len(rs) != 1:
        raise Exception("account %s not enough money" % acctid)
    finally:
      cursor.close()
  #賬戶減錢
  def reduce_money(self,acctid,money):
    cursor = self.conn.cursor()
    try:
      sql = "update account set money = money-%s where acctid = %s" % (money,acctid)
      cursor.execute(sql)
      print "reduce_money:" + sql
      if cursor.rowcount != 1:
        raise Exception("reduce money fail %s" % acctid)
    finally:
      cursor.close()
  #賬戶加錢
  def add_money(self,acctid,money):
    cursor = self.conn.cursor()
    try:
      sql = "update account set money = money+%s where acctid = %s" % (money,acctid)
      cursor.execute(sql)
      print "add_money:" + sql
      if cursor.rowcount != 1:
        raise Exception("add money fail %s" % acctid)
    finally:
      cursor.close()
  #主執(zhí)行語句
  def transfer(self,source_acctid,target_acctid,money):
    try:
      self.check_acct_avaiable(source_acctid)
      self.check_acct_avaiable(target_acctid)
      self.has_enough_money(source_acctid,money)
      self.reduce_money(source_acctid,money)
      self.add_money(target_acctid,money)
      self.conn.commit()
    except Exception as e:
      self.conn.rollback()
      raise e
if __name__ == "__main__":
  source_acctid = sys.argv[1]
  target_acctid = sys.argv[2]
  money = sys.argv[3]
  conn = MySQLdb.Connect(host = '127.0.0.1',port=3306,user='root',passwd='',db='test',charset='utf8')
  tr_money = TransferMoney(conn)
  try:
    tr_money.transfer(source_acctid,target_acctid,money)
  except Exception as e:
    print "Happen:" + str(e)
  finally:
    conn.close()

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • 教你編譯pjsip源碼的方法

    教你編譯pjsip源碼的方法

    通過本文教大家如何編譯pjsip源碼,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-10-10
  • Python JSON模塊的使用詳情

    Python JSON模塊的使用詳情

    這篇文章主要介紹了Python JSON模塊的使用詳情,JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫下面文章圍繞Python JSON模塊的相關(guān)資料展開內(nèi)容,需要的小伙伴可以參考一下,希望 對你有所幫助
    2021-12-12
  • Python繪制計算機CPU占有率變化的折線圖

    Python繪制計算機CPU占有率變化的折線圖

    這篇文章主要為大家詳細(xì)介紹了Python繪制計算機CPU占有率變化的折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python實現(xiàn)上傳樣本到virustotal并查詢掃描信息的方法

    python實現(xiàn)上傳樣本到virustotal并查詢掃描信息的方法

    這篇文章主要介紹了python實現(xiàn)上傳樣本到virustotal并查詢掃描信息的方法,是比較實用的技巧,需要的朋友可以參考下
    2014-10-10
  • python機器學(xué)習(xí)理論與實戰(zhàn)(六)支持向量機

    python機器學(xué)習(xí)理論與實戰(zhàn)(六)支持向量機

    這篇文章主要介紹了python機器學(xué)習(xí)理論與實戰(zhàn)第六篇,支持向量機的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 對Python3之進(jìn)程池與回調(diào)函數(shù)的實例詳解

    對Python3之進(jìn)程池與回調(diào)函數(shù)的實例詳解

    今天小編就為大家分享一篇對Python3之進(jìn)程池與回調(diào)函數(shù)的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python中逗號轉(zhuǎn)為空格的三種方法

    Python中逗號轉(zhuǎn)為空格的三種方法

    本文介紹了Python中將逗號轉(zhuǎn)換為空格的三種方法,包含使用replace函數(shù)、使用split函數(shù)、使用正則表達(dá)式,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Python測試框架pytest高階用法全面詳解

    Python測試框架pytest高階用法全面詳解

    這篇文章主要為大家介紹了Python測試框架pytest高階用法全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • TensorFlow keras卷積神經(jīng)網(wǎng)絡(luò) 添加L2正則化方式

    TensorFlow keras卷積神經(jīng)網(wǎng)絡(luò) 添加L2正則化方式

    這篇文章主要介紹了TensorFlow keras卷積神經(jīng)網(wǎng)絡(luò) 添加L2正則化方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python安裝pygit2失敗問題及解決

    Python安裝pygit2失敗問題及解決

    這篇文章主要介紹了Python安裝pygit2失敗問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論