python实现的MySQL增删改查操作实例小结


Posted in Python onDecember 19, 2018

本文实例总结了python实现的MySQL增删改查操作。分享给大家供大家参考,具体如下:

代码片段一

连接并执行sql

#encoding:UTF-8
import MySQLdb
conn = MySQLdb.Connect(
  host = '127.0.0.1',
  port = 3306,
  user = 'root',
  passwd='123456',
  db='imooc',
  charset='utf8'
)
cursor = conn.cursor()
print conn
print cursor
sql = "select * from user"
cursor.execute(sql) #执行

取数据

print cursor.rowcount
#取数据
#fetchone()获取一条数据
#fetchany(3)获取多条
#fetchall()#获取客户缓冲区的所有数据
# rs = cursor.fetchone()
# print rs
#
# rs = cursor.fetchmany(2)
# print rs
#
# rs = cursor.fetchall()
# print rs
# rs = cursor.fetchall()
# for row in rs:
#   print "userid=%s,username=%s" % row

更新数据库

# 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"
# cursor.execute(sql_insert)
# cursor.execute(sql_update)
# cursor.execute(sql_delete)
# #执行完后提交
# conn.commit()
# #发生异常时回滚
# try:
#   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"
#   cursor.execute(sql_insert)
#   cursor.execute(sql_update)
#   cursor.execute(sql_delete)
#   conn.commit()
# except Exception as e:
#   print e
#   conn.rollback()
cursor.close()
conn.close()

代码片段2 银行实例

#coding:UTF-8
import sys
import MySQLdb
class TransferMoney(object):
  def __init__(self,conn):
    self.conn = conn
  def tranfer(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
  def check_acct_available(self, acctid):
    cursor = self.conn.cursor()
    try:
      sql = "select * from account where acctid=%s"%acctid
      cursor.execute(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 "reduce_money:" + sql
      if cursor.rowcount != 1:
        raise Exception("账号%s加款失败" % acctid)
    finally:
      cursor.close()
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='123456',
    db='imooc',
    charset='utf8'
  )
  tr_money = TransferMoney(conn)
  try:
    tr_money.tranfer(source_acctid,target_acctid,money)
  except Exception as e:
    print "出现问题了" + str(e)
  finally:
    conn.close()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中非常实用的一些功能和函数分享
Feb 14 Python
Windows下安装python2.7及科学计算套装
Mar 05 Python
Python输出带颜色的字符串实例
Oct 10 Python
python获取代码运行时间的实例代码
Jun 11 Python
python requests 测试代理ip是否生效
Jul 25 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
Django choices下拉列表绑定实例
Mar 13 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
Python实现随机生成迷宫并自动寻路
Jun 13 Python
python3 http提交json参数并获取返回值的方法
Dec 19 #Python
python3.6使用urllib完成下载的实例
Dec 19 #Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 #Python
对python内置map和six.moves.map的区别详解
Dec 19 #Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 #Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 #Python
对python3标准库httpclient的使用详解
Dec 18 #Python
You might like
PHP生成二维码的两个方法和实例
2014/07/01 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
Python with用法实例
2015/04/14 Python
python实现微信远程控制电脑
2018/02/22 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
怎样写演讲稿
2014/01/04 职场文书
年度考核评语
2014/01/19 职场文书
社区端午节活动方案
2014/01/28 职场文书
历史学专业求职信
2014/06/19 职场文书
网络技术专业求职信
2014/07/13 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
Pytest中conftest.py的用法
2021/06/27 Python
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android