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

Python操作MySQL模擬銀行轉賬

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

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

另外,在編寫實例的時候,對于面向對象的編程思路又有了新的認識,自頂向下的程序編寫模式非常有利于拆分程序的功能,分而治之。面向對象的封裝性在此提醒的淋漓盡致!

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

#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錯誤!") 
    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 "轉賬錯誤"+str(e) 
  try: 
    trMoney.createNewUser(newID,newmoney) 
  except Exception as e: 
    print "創(chuàng)建用戶失??!"+str(e) 
  finally: 
    conn.close() 

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

相關文章

  • Pandas含中文表格對齊輸出的幾種情況

    Pandas含中文表格對齊輸出的幾種情況

    今天使用python計算數(shù)據(jù)相關性,但是發(fā)現(xiàn)計算出的表格中間好多省略號,而且也不對齊,?這也太難看了,下面這篇文章主要給大家介紹了關于Pandas含中文表格對齊輸出的幾種情況,需要的朋友可以參考下
    2023-04-04
  • Python+OpenCV目標跟蹤實現(xiàn)基本的運動檢測

    Python+OpenCV目標跟蹤實現(xiàn)基本的運動檢測

    這篇文章主要為大家詳細介紹了Python+OpenCV目標跟蹤實現(xiàn)基本的運動檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python實現(xiàn)進度條和時間預估的示例代碼

    Python實現(xiàn)進度條和時間預估的示例代碼

    這篇文章主要介紹了Python實現(xiàn)進度條和時間預估的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • python基礎教程之元組操作使用詳解

    python基礎教程之元組操作使用詳解

    這篇文章主要介紹了python的元組操作使用方法,需要的朋友可以參考下
    2014-03-03
  • python如何編寫類似nmap的掃描工具

    python如何編寫類似nmap的掃描工具

    這篇文章主要介紹了python如何編寫類似nmap的掃描工具,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python實現(xiàn)決策樹分類算法代碼示例

    python實現(xiàn)決策樹分類算法代碼示例

    決策樹分類算法是最為常見的一種分類算法,通過屬性劃分來建立一棵決策樹,測試對象通過在樹上由頂向下搜索確定所屬的分類,下面這篇文章主要給大家介紹了關于python實現(xiàn)決策樹分類算法的相關資料,需要的朋友可以參考下
    2022-06-06
  • Python使用watchfiles實現(xiàn)監(jiān)控目錄變更

    Python使用watchfiles實現(xiàn)監(jiān)控目錄變更

    在工作中難免會碰到這樣的需求,監(jiān)控指定目錄,下面小編就來和大家介紹一下如何利用watchfiles 模塊實現(xiàn)監(jiān)控目錄的變更,感興趣的可以了解下
    2023-09-09
  • Python使用xpath實現(xiàn)圖片爬取

    Python使用xpath實現(xiàn)圖片爬取

    這篇文章主要介紹了Python使用xpath實現(xiàn)圖片爬取,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • pyautogui自動化控制鼠標和鍵盤操作的步驟

    pyautogui自動化控制鼠標和鍵盤操作的步驟

    這篇文章主要介紹了pyautogui自動化控制鼠標和鍵盤操作的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 使用 NumPy 和 Matplotlib 繪制函數(shù)圖

    使用 NumPy 和 Matplotlib 繪制函數(shù)圖

    Matplotlib 是 Python 的繪圖庫。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython
    2021-09-09

最新評論