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的正确使用方法,示例代码都是选自实战项目。

安装

简单的方式:

1

pip install pymysql

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

1

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

导入

1

import pymysql

连接

1

2

3

4

5

6

7

def connect_wxremit_db():

return pymysql.connect(host='10.123.5.28',

port=3306,

user='root',

password='root1234',

database='db_name',

charset='latin1')

查询

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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]

简单插入

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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()

批量插入

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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()

更新

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

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发行版本中都是可选的安装组件。

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

原文链接:https://www.qcloud.com/community/article/687813

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

servlet3.0注解loadOnStartup不起作用解决方案

多次尝试3.0在源码中直接用注解配置loadOnStartup1,即web应用启动时创建servlet实例,发现不起作用,但是在web.xml配置则可以正常运行。先上源码。 package lee;import javax.servlet.http.*; import javax.servlet.*; import javax.servlet.a…

html checked属性值,HTML复选框的checked属性的值是多少?

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?我们都知道如何在HTML中构成复选框输入:我不知道 - 选中复选框的技术上正确的值是多少?我已经看到了这些工作:答案是无关紧要的…

3位水仙花数计算pythonoj_Python解答蓝桥杯省赛真题之从入门到真题

若发现此文章消失,则是在等待审核中,稍等一会儿即可显示,谢谢。 另外,我会尽量晚上上传更新题目。 此文章太长了,导致MD编辑器很卡,另写了一篇接续 传送门 Python解答蓝桥杯省赛真题之从入门到真题 &#x…

js 将json字符串转换为json对象的方法解析

js 将json字符串转换为json对象的方法解析 将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键例如&#…

uniapp怎么解析html字符串,uniapp富文本解析插件的详细使用教程

如果你作为文章资源类或者博客类的小程序你就会发现,很多时候你的文章数据都是html格式或md格式,这样如果不经过处理,会非常难看,所以富文本解析就显得格外重要了,今天给大家写一个uniapp怎么使用富文本解析插件的教程…

c++和python有联系吗_Python和C++交互

关键字:Python 2.7,VS 2010,swig OS:Win8.1 with update。 1.下载swig:http://www.swig.org/download.html 2.将swig的路径添加到环境变量Path,例如set pathC:\swigwin-3.0.2。 3.用VS创建一个win32 consol…

这两年多我写PHP业务代码的方式是如何进化的

曾今 谁都有过迷茫期,下面是我开始PHP开发中,不断改变的代码组织方式。 初期:所有代码一股脑控制器controller 曾今只是简单的理解MVC 中期:业务代码抽象一部分到模型层model 开始觉得model层是否该做点什么了 后期:业…

html播放切片,[Html/Css]网页切片

简介这篇文章主要介绍了[Html/Css]网页切片以及相关的经验技巧,文章约2269字,浏览量461,点赞数4,值得参考!网页切片 前端必须掌握的技能,切片,虽然说难也不难,简单也确实是挺简单的&…

时间转换python_Python 日期与时间转换的方法

问题 你需要执行简单的时间转换,比如天到秒,小时到分钟等的转换。 解决方案 为了执行不同时间单位的转换和计算,请使用 datetime 模块。 比如,为了表示一个时间段,可以创建一个 timedelta 实例,就像下面这样…

设计模式学习总结(一)——设计原则与UML统一建模语言

目录 一、概要1.1、设计模式定义1.2、设计模式分类1.3、设计模式书籍二、UML统一建模语言2.1、UML分类2.2、类图2.2.1、关联2.2.2、聚合/组合2.2.3、依赖2.2.4、泛化(继承)三、设计原则2.1、单一职责原则(SRP)2.2、开闭原则&#…

计算机与生命科学专业排名,2019软科世界一流学科排名发布,54个专业TOP10牛校榜单全给你...

原标题:2019软科世界一流学科排名发布,54个专业TOP10牛校榜单全给你软科26日正式发布2019“软科世界一流学科排名”(Shanghai Rankings Global Ranking of Academic Subjects)。2019年排名覆盖54个学科,涉及理学、工学、生命科学、医学和社会…

python入门心得_一天入门 Python 的一些心得

1. 前言 好久没写文了。最近在搞一些好玩的技术用到了 Python 。我原以为要花些时日,谁知道第一天入门之后便没有再刻意地去学习它了。这里就写写其中的一些关键点吧。如果我去学一门语言不是因为它火了而是我用到它了。曾经闲着没事干的时候把 Kotlin 、Vue、React…

git 创建tag , 查看tag , 删除tag

2157 git tag  //查看tag2158 git tag test_tag c809ddbf83939a89659e51dc2a5fe183af384233    //在某个commit 上打tag2159 git tag ... 2169 git push origin test_tag    //!!!本地tag推送到线上 ... 2180 git tag -d test_tag        //本地删除tag…

太原计算机专业专科大学排名,太原【计算机学校】排名

太原【计算机学校】排名,资助政策1、根据国家助学金管理办法相关规定:凡被我校正式录取并注册学籍的学生在校期间均可以享受国家**费补助1900元/年,享受三年。创新科技中等专业学校排名, 有45个本科专业,16个专科专业, 3个专业硕士…

python print format

挺有用 //test.py 1 print %.*f %(1, 13.987) 2 print %.*f %(2, 13.987) 3 print p%8d %(123) 4 print p%-8d %(123) 5 print %d %(1) 6 print % d %2 7 print %#o %(17) 8 print %#x %(17) 9 print %#X %(29) 10 print %02d %(3) 11 print % 02d %(3) 12 print %%%d %(4) 13 …

python中正则表达式的默认匹配方式为_Python模式匹配与正则表达式

1.1 不用正则表达式来匹配文本 假设我希望在一个字符串中找到电话号码,电话号码的格式为三个数字,一个短横线,四个数字,一个短横线,四个数字 比如:131-3310-5293和132-2670-9864 def IsTruePhoneNumber(con…

计算机网络应用是学什么类型的,计算机网路中服务类型及应用

服务(service)这个极普通的术语在计算机网络中无疑是一个极重要的概念。在网络体系结构中,服务就是网络中各层向其相邻上层提供的一组操作,是相邻两层之间的界面。由于网络分层结构中的单向依赖关系,使得网络中相邻层之间的界面也是单向性的&…

oschina git服务, 如何生成并部署ssh key

1.如何生成ssh公钥 你可以按如下命令来生成 sshkey: ssh-keygen -t rsa -C "xxxxxxxxxx.com" # Generating public/private rsa key pair... # 三次回车即可生成 ssh key 查看你的 public key,并把他添加到码云(Gitee.com) SSH k…

需求调研报告模板_2020年工业软管行业深度市场调研及投资策略建议报告-液体化学品增加对其需求...

(原标题:液体化学品市场规模增加 对工业软管需求量变大)工业软管,又称为工业胶管。主要用于各行业各设备作软体连接的一种软管。相比民用软管,工业作业环境更复杂、更恶劣、设备对输送管的要求也更苛刻,因此…

计算机基础理论知识的论文,计算机基础毕业论文

计算机基础毕业论文随着科学技术的不断发展,计算机也开始人类在正常生活当中所应用的一个高新的技术。下面是小编整理的计算机基础毕业论文,欢迎来参考!摘要:大学进行计算机教学能够对学生的创新能力进行培养,还能够使…