全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python 操作MySQL详解及实例

Python 操作MySQL详解及实例

使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy。

Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3。

PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3。

SQLAlchemy是一个ORM框架,它并不提供底层的数据库操作,而是要借助于MySQLdb、PyMySQL等第三方库来完成,目前SQLAlchemy在Web编程领域应用广泛。

本文主要介绍PyMySQL的正确使用方法,示例代码都是选自实战项目。

安装

简单的方式:

pip install pymysql

如果无法联网,需要进行离线安装,例如:

pip install pymysql-x.x.x.tar.gz

导入

import pymysql

连接

def connect_wxremit_db():
  return pymysql.connect(host='10.123.5.28',
              port=3306,
              user='root',
              password='root1234',
              database='db_name',
              charset='latin1')

查询

def query_country_name(cc2):
  sql_str = ("SELECT Fcountry_name_zh"
        + " FROM t_country_code"
        + " WHERE Fcountry_2code='%s'" % (cc2))
  logging.info(sql_str)

  con = mysql_api.connect_wxremit_db()
  cur = con.cursor()
  cur.execute(sql_str)
  rows = cur.fetchall()
  cur.close()
  con.close()

  assert len(rows) == 1, 'Fatal error: country_code does not exists!'
  return rows[0][0]

简单插入

def insert_file_rec(self, file_name, file_md5):
    con = mysql_api.connect_wxremit_db()
    cur = con.cursor()
    try:
      sql_str = ("INSERT INTO t_forward_file (Ffile_name, Ffile_md5)", 
            + " VALUES ('%s', '%s')" % (file_name, file_md5))
      cur.execute(sql_str)
      con.commit()
    except:
      con.rollback()
      logging.exception('Insert operation error')
      raise
    finally:
      cur.close()
      con.close()

批量插入

remit_ids = [('1234', 'CAD'), ('5678', 'HKD')]

con = mysql_api.connect_wxremit_db()
    cur = con.cursor()
    try:
        cur.executemany("INSERT INTO t_order (Fremit_id, Fcur_type, Fcreate_time"
                        + " VALUES (%s, %s, now())", new_items)
        assert cur.rowcount == len(remit_ids), 'my error message'
        con.commit()
    except Exception as e:
        con.rollback()
        logging.exception('Insert operation error')
    finally:
        cur.close()
        con.close()

更新

 def update_refund_trans(self, remit_id):
    con = mysql_api.connect_wxremit_db()
    cur = con.cursor()
    try:
      sql_str = ("SELECT Fremit_id"
            + " FROM t_wxrefund_trans"
            + " WHERE Fremit_id='%s'" % remit_id
            + " FOR UPDATE")
      logging.info(sql_str)

      cur.execute(sql_str)
      assert cur.rowcount == 1, 'Fatal error: The wx-refund record be deleted!'

      sql_str = ("UPDATE t_wxrefund_trans"
            + " SET Fcheck_amount_flag=1"
            + ", Fmodify_time=now()"
            + " WHERE Fremit_id='%s'" % remit_id
      logging.info(sql_str)
      cur.execute(sql_str)

      assert cur.rowcount == 1, 'The number of affected rows not equal to 1'
      con.commit()
    except:
      con.rollback()
      logging.exception('Update operation error')
      raise
    finally:
      cur.close()
      con.close()

PyMySQL已经相当成熟,和Python-MySQL一样,它在很多Linux发行版本中都是可选的安装组件。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Python  # 操作  # MySQL  # 对MySQL的操作  # python测试mysql写入性能完整实例  # python3.6连接MySQL和表的创建与删除实例代码  # python 3.6 +pyMysql 操作mysql数据库(实例讲解)  # Python如何实现MySQL实例初始化详解  # 在python3环境下的Django中使用MySQL数据库的实例  # Python操作使用MySQL数据库的实例代码  # Python实现Mysql数据库连接池实例详解  # python将字典内容存入mysql实例代码  # 都是  # 是一个  # 离线  # 希望能  # 较多  # 不支持  # 可选  # 它在  # 谢谢大家  # 第三方  # 来完成  # 而生  # 近两年  # 最棒  # 最老  # 主要有  # 而是要  # import  # host  # connect 


相关文章: 如何通过虚拟主机空间快速建站?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何在万网ECS上快速搭建专属网站?  Android自定义控件实现温度旋转按钮效果  建站之星备案是否影响网站上线时间?  如何快速生成专业多端适配建站电话?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  家庭建站与云服务器建站,如何选择更优?  微信h5制作网站有哪些,免费微信H5页面制作工具?  建站上市公司网站建设方案与SEO优化服务定制指南  在线教育网站制作平台,山西立德教育官网?  如何用搬瓦工VPS快速搭建个人网站?  公司门户网站制作流程,华为官网怎么做?  智能起名网站制作软件有哪些,制作logo的软件?  seo网站制作优化,网站SEO优化步骤有哪些?  建站主机选择指南:服务器配置与SEO优化实战技巧  如何选择靠谱的建站公司加盟品牌?  详解jQuery停止动画——stop()方法的使用  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何配置IIS站点权限与局域网访问?  香港服务器WordPress建站指南:SEO优化与高效部署策略  北京网站制作网页,网站升级改版需要多久?  如何通过cPanel快速搭建网站?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何用PHP快速搭建CMS系统?  如何用低价快速搭建高质量网站?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  东莞专业制作网站的公司,东莞大学生网的网址是什么?  c# 在ASP.NET Core中管理和取消后台任务  如何通过商城免费建站系统源码自定义网站主题?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何自定义建站之星网站的导航菜单样式?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  已有域名和空间,如何快速搭建网站?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何通过服务器快速搭建网站?完整步骤解析  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何快速搭建高效简练网站?  表情包在线制作网站免费,表情包怎么弄?  如何快速配置高效服务器建站软件?  如何快速辨别茅台真假?关键步骤解析  如何快速查询域名建站关键信息?  如何注册花生壳免费域名并搭建个人网站?  linux top下的 minerd 木马清除方法  如何在宝塔面板创建新站点? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。