最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文實(shí)例講述了Python事務(wù)操作實(shí)現(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í)行語(yǔ)句
  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ù)庫(kù)操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

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

相關(guān)文章

  • Python實(shí)現(xiàn)國(guó)外賭場(chǎng)熱門游戲Craps(雙骰子)

    Python實(shí)現(xiàn)國(guó)外賭場(chǎng)熱門游戲Craps(雙骰子)

    這篇文章主要介紹了Python實(shí)現(xiàn)國(guó)外賭場(chǎng)熱門游戲Craps(雙骰子)的源碼及運(yùn)行方法,十分簡(jiǎn)單,有需要的小伙伴可以參考下。
    2015-03-03
  • 用python畫一只帥氣的皮卡丘

    用python畫一只帥氣的皮卡丘

    大家好,本篇文章主要講的是用python畫一只帥氣的皮卡丘,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 使用Python實(shí)現(xiàn)在Excel工作表中創(chuàng)建、修改及刪除表格區(qū)域

    使用Python實(shí)現(xiàn)在Excel工作表中創(chuàng)建、修改及刪除表格區(qū)域

    在數(shù)據(jù)分析和自動(dòng)化處理的工作中,Excel作為一種強(qiáng)大的工具被廣泛應(yīng)用,而通過(guò)Python來(lái)操作Excel工作表中的表格,可以極大提高工作效率,下面我們就來(lái)學(xué)學(xué)如何使用Python在Excel工作表中創(chuàng)建,修改及刪除表格吧
    2024-12-12
  • Python之Trimesh庫(kù)的使用方式

    Python之Trimesh庫(kù)的使用方式

    這篇文章主要介紹了Python之Trimesh庫(kù)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python實(shí)現(xiàn)定期檢查源目錄與備份目錄的差異并進(jìn)行備份功能示例

    Python實(shí)現(xiàn)定期檢查源目錄與備份目錄的差異并進(jìn)行備份功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)定期檢查源目錄與備份目錄的差異并進(jìn)行備份功能,涉及Python基于filecmp模塊的文件比較及讀寫等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • Python?輕松實(shí)現(xiàn)可視化大屏

    Python?輕松實(shí)現(xiàn)可視化大屏

    對(duì)于從事數(shù)據(jù)領(lǐng)域的小伙伴來(lái)說(shuō),當(dāng)需要闡述自己觀點(diǎn)、展示項(xiàng)目成果時(shí),我們需要在最短時(shí)間內(nèi)讓別人知道你的想法。我相信單調(diào)乏味的語(yǔ)言很難讓別人快速理解。最直接有效的方式就是將數(shù)據(jù)進(jìn)行可視化展現(xiàn)
    2022-01-01
  • appium+python自動(dòng)化配置(adk、jdk、node.js)

    appium+python自動(dòng)化配置(adk、jdk、node.js)

    這篇文章主要介紹了appium+python自動(dòng)化配置(adk、jdk、node.js),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python中的上下文管理器相關(guān)知識(shí)詳解

    Python中的上下文管理器相關(guān)知識(shí)詳解

    這篇文章主要介紹了Python中的上下文管理器相關(guān)知識(shí)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python運(yùn)算符優(yōu)先級(jí)詳細(xì)整理

    Python運(yùn)算符優(yōu)先級(jí)詳細(xì)整理

    在一個(gè)表達(dá)式中可能包含多個(gè)有不同運(yùn)算符連接起來(lái)的、具有不同數(shù)據(jù)類型的數(shù)據(jù)對(duì)象,由于表達(dá)式有多種運(yùn)算,不同的運(yùn)算順序可能得出不同結(jié)果甚至出現(xiàn)錯(cuò)誤運(yùn)算錯(cuò)誤,下面這篇文章主要給大家介紹了關(guān)于Python運(yùn)算符優(yōu)先級(jí)的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Python?scipy利用快速傅里葉變換實(shí)現(xiàn)濾波

    Python?scipy利用快速傅里葉變換實(shí)現(xiàn)濾波

    這篇文章主要為大家詳細(xì)介紹了Python?scipy如何利用快速傅里葉變換實(shí)現(xiàn)濾波,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01

最新評(píng)論

鲁甸县| 综艺| 佛学| 富锦市| 从江县| 林芝县| 时尚| 贺州市| 沅陵县| 宿迁市| 绵竹市| 林口县| 宣威市| 忻州市| 玉环县| 江孜县| 都安| 稷山县| 洛南县| 南平市| 同仁县| 桦川县| 西吉县| 安义县| 东海县| 大庆市| 无极县| 深水埗区| 静海县| 潢川县| 乳山市| 囊谦县| 紫阳县| 临江市| 皮山县| 普兰店市| 巨鹿县| 玉溪市| 和政县| 聂拉木县| 无极县|