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

Python操作MySQL模擬銀行轉(zhuǎn)賬

 更新時(shí)間:2018年03月12日 14:08:15   作者:freedom098  
這篇文章主要為大家詳細(xì)介紹了Python操作MySQL模擬銀行轉(zhuǎn)賬,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

今天在慕課網(wǎng)上學(xué)習(xí)了有關(guān)于python操作MySQL的相關(guān)知識(shí),在此做些總結(jié)。python操作數(shù)據(jù)庫還是相對比較簡單的,由于python統(tǒng)一了各個(gè)數(shù)據(jù)庫的接口程序,也就是所謂的Python DB,所以無論使用何種數(shù)據(jù)可,都可以用統(tǒng)一的接口對數(shù)據(jù)庫進(jìn)行操作。操作中主要涉及connection對象的操作和cursor的操作,前者主要是為了建立起python與數(shù)據(jù)庫的數(shù)據(jù)交換通道,后者則是訪問數(shù)據(jù)的游標(biāo),也可以理解為指針。數(shù)據(jù)庫的相關(guān)結(jié)構(gòu)化語言在Python中均是以字符串的形式呈現(xiàn)的。另外注意rollback的重要性,一旦操作失敗,所有操作都要回滾到之前的狀態(tài),否則會(huì)發(fā)生錯(cuò)誤。

另外,在編寫實(shí)例的時(shí)候,對于面向?qū)ο蟮木幊趟悸酚钟辛诵碌恼J(rèn)識(shí),自頂向下的程序編寫模式非常有利于拆分程序的功能,分而治之。面向?qū)ο蟮姆庋b性在此提醒的淋漓盡致!

代碼如下,在原有基礎(chǔ)上,我又增加了添加記錄的功能。

#coding=utf8 
import MySQLdb 
import sys 
 
class TranseferMonet(object): 
 
  def __init__(self,conn): 
    self.conn = conn 
 
  def createNewUser(self,userID,money): 
    cursor = self.conn.cursor() 
    try: 
      sql = 'INSERT account VALUES(%s,%s)' %(str(userID),str(money)) 
      cursor.execute(sql) 
      self.conn.commit() 
    except Exception as e: 
      self.conn.rollback() 
      raise e 
 
  def transferMoney(self,transeferID,recivierID,money): 
    try: 
      self.checkID(transeferID) 
      self.checkID(receiverID) 
      self.checkEnoughMoney(transferID,money) 
      self.subMoney(transferID,money) 
      self.addMoney(receiverID,money) 
      self.conn.commit() 
    except Exception as e: 
      self.conn.rollback() 
      raise e 
 
  def checkID(self,userID): 
    cursor = self.conn.cursor() 
    try: 
      sql = 'SELECT userID FROM account WHERE userID = %s' %str(userID) 
      cursor.execute(sql) 
      rs = cursor.fetchall() 
      if len(rs) != 1: 
        raise Exception("ID錯(cuò)誤!") 
    finally: 
      cursor.close() 
 
  def checkEnoughMoney(self,transferID,money): 
    cursor = self.conn.cursor() 
    try: 
      sql = 'SELECT money FROM account WHERE userID = %s and money >= %s' %(str(transferID),str(money)) 
      cursor.execute(sql) 
      rs = cursor.fetchall() 
      if len(rs) != 1: 
        raise Exception("余額不足!") 
    finally: 
      cursor.close() 
  def subMoney(self,transferID,money): 
    cursor = self.conn.cursor() 
    try: 
      sql = 'UPDATE account SET money = money-%s WHERE userID = %s' %(str(money),str(transferID)) 
      cursor.execute(sql) 
      if cursor.rowcount != 1: 
        raise Exception('減款失??!') 
    finally: 
      cursor.close() 
 
  def addMoney(self,receiverID,money): 
 
    cursor = self.conn.cursor() 
    try: 
      sql = 'UPDATE account SET money = money+%s WHERE userID = %s' %(str(money),str(receiverID)) 
      cursor.execute(sql) 
      if cursor.rowcount != 1: 
        raise Exception('加款失?。?) 
    finally: 
      cursor.close() 
 
if __name__=="__main__": 
 
  transferID = 2002 
  receiverID = 2001 
  money = 300 
 
  newID = 2003 
  newmoney = 900 
 
  conn = MySQLdb.connect(host = '127.0.0.1',port = 3306,user = 'root',passwd = '914767195',db = 'test',charset = 'utf8') 
 
  trMoney = TranseferMonet(conn) 
 
  try: 
    trMoney.transferMoney(transferID,receiverID,money) 
  except Exception as e: 
    print "轉(zhuǎn)賬錯(cuò)誤"+str(e) 
  try: 
    trMoney.createNewUser(newID,newmoney) 
  except Exception as e: 
    print "創(chuàng)建用戶失??!"+str(e) 
  finally: 
    conn.close() 

 以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python模型集成知識(shí)點(diǎn)總結(jié)

    python模型集成知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于python模型集成知識(shí)點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • python實(shí)現(xiàn)簡單學(xué)生信息管理系統(tǒng)

    python實(shí)現(xiàn)簡單學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python簡單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 使用Python和OpenCV實(shí)現(xiàn)動(dòng)態(tài)背景的畫中畫效果

    使用Python和OpenCV實(shí)現(xiàn)動(dòng)態(tài)背景的畫中畫效果

    這篇文章將通過一個(gè)詳細(xì)的Python腳本,使用OpenCV庫來為視頻添加動(dòng)態(tài)背景,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • 已安裝tensorflow-gpu,但keras無法使用GPU加速的解決

    已安裝tensorflow-gpu,但keras無法使用GPU加速的解決

    今天小編就為大家分享一篇已安裝tensorflow-gpu,但keras無法使用GPU加速的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 解決python中import文件夾下面py文件報(bào)錯(cuò)問題

    解決python中import文件夾下面py文件報(bào)錯(cuò)問題

    這篇文章主要介紹了解決python中import文件夾下面py文件報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • LyScript尋找ROP漏洞指令片段的方法詳解

    LyScript尋找ROP漏洞指令片段的方法詳解

    ROP可以理解成一個(gè)可以關(guān)閉系統(tǒng)自身內(nèi)存保護(hù)的一段機(jī)器指令。本文將利用LyScript尋找ROP漏洞指令片段,感興趣的小伙伴可以了解一下
    2022-07-07
  • mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)

    mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • python使用PyGame實(shí)現(xiàn)打磚塊游戲

    python使用PyGame實(shí)現(xiàn)打磚塊游戲

    打磚塊也是一個(gè)非常經(jīng)典的小游戲,玩法大致如下,用一個(gè)小車接一個(gè)小球,然后反射小球,使之打在磚塊上,當(dāng)小球碰到磚塊之后,則磚塊被消掉,邏輯十分清晰,本文將給大家介紹了python使用PyGame實(shí)現(xiàn)打磚塊游戲,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • 單步調(diào)試 step into/step out/step over 區(qū)別說明

    單步調(diào)試 step into/step out/step over 區(qū)

    這篇文章主要介紹了單步調(diào)試 step into/step out/step over 區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python使用xlrd和xlwt批量讀寫excel文件的示例代碼

    Python使用xlrd和xlwt批量讀寫excel文件的示例代碼

    這篇文章主要介紹了Python使用xlrd和xlwt批量讀寫excel文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評論

昌邑市| 繁昌县| 黑龙江省| 呼和浩特市| 台南县| 宁国市| 金沙县| 兴国县| 横峰县| 外汇| 涡阳县| 宜宾市| 刚察县| 平罗县| 仙居县| 延边| 丰原市| 临泽县| 文山县| 岑溪市| 德州市| 玉环县| 化德县| 从江县| 伊川县| 承德市| 高阳县| 阳春市| 广宗县| 临高县| 延吉市| 武清区| 定陶县| 隆德县| 宁河县| 富阳市| 崇文区| 武平县| 泸州市| 绥阳县| 砚山县|