日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python 数据库连接

發(fā)布時(shí)間:2024/8/23 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 数据库连接 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#!/usr/bin/env python #-*-coding:utf-8-*- #異常處理,with的使用, class Mycontex(object):def __init__(self,name):self.name=namedef __enter__(self):print("__enter__")return selfdef do_self(self):print('do_self')def __exit__(self,exc_type,exc_value,traceback):print('__exit__')print("Error: ",exc_type," info:",exc_value)if __name__=='__main__':with Mycontex('test context') as f:print(f.name)f.do_self()#!/usr/bin/env python #-*-coding:utf-8-*- import MySQLdb #連接數(shù)據(jù)庫 conn=MySQLdb.Connect(host='127.0.0.1',port=3306,user='root',passwd='123456',db='imooc',charset='utf8') cursor=conn.cursor()sql_insert="insert into user(userid,username) values(10,'name10')" sql_update="update user set username='name91' where userid=9" sql_delete="delete from user where userid<3" #異常處理 try:cursor.execute(sql_insert)print(cursor.rowcount)cursor.execute(sql_update)print(cursor.rowcount)cursor.execute(sql_delete)print(cursor.rowcount)conn.commit() except Exception as e:print(e)#回滾事物conn.rollback()cursor.close() conn.close()#!/usr/bin/env python #-*-coding:utf-8-* #銀行轉(zhuǎn)賬模擬 import sys import MySQLdbclass 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" % acctidcursor.execute(sql)print("check_acct_available:"+sql)rs=cursor.fetchall()if len(rs)!=1:raise Exception("賬號(hào)%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("賬號(hào)%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("賬號(hào)%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("賬號(hào)%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 eif __name__=='__main__':#source_acctid=sys.argv[0]#target_acctid=sys.argv[1]#money=sys.argv[2]source_acctid=input('請(qǐng)輸入用戶')target_acctid=input('轉(zhuǎn)入用戶')money=input('轉(zhuǎn)入金額')conn=MySQLdb.Connect(host='127.0.0.1',user='root',passwd='123456',port=3306,db='imooc')tr_money=TransferMoney(conn)try:tr_money.transfer(source_acctid,target_acctid,money)except Exception as e:print('出現(xiàn)問題:'+str(e))finally:conn.close()
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Python 数据库连接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。