一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python3連接MySQL(pymysql)模擬轉賬實現代碼

Python3連接MySQL(pymysql)模擬轉賬實現代碼

2020-08-23 13:59沙拉虎 Python

這篇文章主要介紹了Python3連接MySQL(pymysql)模擬轉賬實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Python3連接MySQL模擬轉賬的具體實現代碼,供大家參考,具體內容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# coding:utf8
import sys
import pymysql
 
class TransferMoney(object):
  def __init__(self,conn):
    self.conn=conn
 
  def check_acct_available(self,acctid):
    cursor = self.conn.cursor()
    try:
      sql="select * from account where acctid=%s" % acctid
      cursor.execute(sql)
      print ("check_acct_available:" + sql)
      rs = cursor.fetchall()
      if len(rs) ! = 1:
        raise Exception("賬號%s不存在"% 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("賬號%s余額不足"% 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("賬號%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("賬號%s加款失敗" % acctid)
    finally:
      cursor.close()
 
 
  def transfer(self,source_acctid,target_acctid,money):
    try:
      self.check_acct_available(source_acctid)
      self.check_acct_available(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 = pymysql.Connect(
            host = 'localhost',
            unix_socket = "..mysql/mysql.sock",
            port = 3306,
            user = 'root',
            passwd = '',
            db = 'python_db',
                    )
  tr_money = TransferMoney(conn)
 
  try:
    tr_money.transfer(source_acctid,target_acctid,money)
  except Exception as e:
    print ("出現問題" + str(e))
  finally:
    conn.close()

以上就是本文的全部內容,希望對大家學習python程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚州免费一级毛片 | 精品午夜久久福利大片免费 | 91久久福利国产成人精品 | 桃子视频www| 日产2021免费一二三四区 | 性美国人xxxxx18 | 青青青久在线视频免费观看 | 国产资源视频在线观看 | 2020年最新国产精品视频免费 | 国产亚洲精品美女久久久 | 日本人欧美xx | 2012中文字幕中字视频 | 成人在线播放 | 欧美夫妇野外交换hd高清版 | 国产99久久久国产精品成人 | www红色一片在线观看版 | 放荡女小洁的性日记 | 暖暖视频免费观看视频中国.韩剧 | 日本免费的一级绿象 | 日本国产最新一区二区三区 | 亚洲精品www久久久久久 | 亚洲精品午夜级久久久久 | 美女的隐私脱裤子无遮挡 | 免费在线观看a | 87影院在线观看视频在线观看 | 日本一二线不卡在线观看 | 亚洲波多野结衣日韩在线 | 精精国产www视频在线观看免费 | 美女操穴视频 | 东京干福利| 粉嫩极品国产在线观看免费 | 欧美特一级 | 日本艳鉧动漫1~6完整版在 | 国产精品免费看久久久香蕉 | 日韩丝袜在线观看 | 嗯啊好大好爽 | 大陆国产精品视频 | 欧美女孩13一14v | ai换脸杨颖被啪在线观看 | 嫩草在线观看视频 | 婷婷在线成人免费观看搜索 |