我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python进阶(十三、mysql:PyMySQL)

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码


	python进阶(十三、mysql:PyMySQL)


	python进阶(十三、mysql:PyMySQL)
[数据库教程]

mysql数据库

15 使用python操作mysql数据库(PyMySQL)
3.15.1. PyMySQL的安装
1)使用命令安装:pip install pymysql
2)使用Pycharm安装
技术图片
技术图片
技术图片

2. python连接数据库
1)参看参数
技术图片
技术图片
技术图片
技术图片

2)创建连接和获取数据
技术图片
技术图片

3)异常处理
mysql语句错误时,会将错误信息传给python,并报错
技术图片
可以使用异常处理,处理mysql语句错误
技术图片

4)关闭游标和连接
使用完数据库,要关闭游标和连接,释放资源
技术图片

3. 数据的增删改
1)数据添加
(1)书写执行语句时,注意sql语句内部的字符串标识要与外边的标识区分开
(2)修改数据的数据要执行commit()才能真正写入数据库
技术图片

2)数据修改
技术图片

3)数据删除
技术图片

4. 数据查询
1)fetch
fetchone():获取一条数据
fetchmany(n):获取n条数据,可用于分页显示
fetchall():获取全部数据
技术图片

2)fetch查询的返回结果默认是元组,可以在元组中直接取值
技术图片

3)指定fetch输出类型是字典:
cursor=pymysql.cursors.DictCursor
技术图片

4)rowcount:是一个只读属性,返回执行execute()方法后影响的行数。
技术图片
可以使用rowcount循环读取fetchone数据
技术图片

5. 数据回滚:rollback
在执行多行语句时,如果其中某行语句出现错误,将前面已经执行成功的语句也撤销,这个过程称为数据回滚。数据回滚可以保证数据的安全和完整性。
技术图片
注意:使用数据回滚时,commit()方法一定要写在try语句的最后。
如果提前使用commit()方法将数据写入数据库,然后再报错,rollback无法删除已经写入数据库中的数据。
rollback只能清除内存中的修改,无法修改数据库中的数据。

6. 表操作
表操作(新建表、修改表、删除表)时,不执行commit()也会直接写到数据库。
技术图片
技术图片

7. 将mysql语句写入字符串,在执行
技术图片
使用三引号(”””)定义字符串可以换行,方便书写

8. sql注入(重点)
1)在sql语句中,遇到“;--”后面的语句就被忽略了
技术图片

2)使用mysql保存用户名和密码,登录验证时,会使验证失效
(1)数据库中创建用户信息表,并添加用户名和密码
技术图片
(2)在python中,判断用户输入的用户名和密码,是否与数据库中的数据相同
技术图片
(3)异常输入时,也可以登陆成功
只知道用户名,不知道密码,可以登陆成功
技术图片
因为mysql执行到“;-- ”后,不在执行后面的语句了。
注意: “;-- ”后面有一个空格
输入时加入or 1=1,用户名和密码都错误依然可以登录成功
技术图片

3)解决方法
定义字符串时,只需要用占位符(%s)占位;然后使用execute()方法实现拼接mysql语句的拼接,将需要替换的数据放入元组即可。execute()还会根据数据类型,自动为字符串数据添加引号。
注意:使用占位符占位时,无论何种数据类型只能使用“%s”,不能使用%d、%f等,execute()方法能够自动识别。
技术图片

9. PyMySQL使用步骤
1)连接数据库:connect(host, user, password, database, port)
2)获取游标 conn.cursor()
3)执行sql语句(增删改查,sql注入)
4)确认提交:commit(),增加、修改和删除数据时,需要确认提交
5)关闭游标
6)关闭数据库

python进阶(十三、mysql:PyMySQL)

原文地址:https://www.cnblogs.com/bdzxh/p/14102822.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python进阶(十三、mysql:PyMySQL)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python进阶(十三、mysql:PyMySQL)

3.mysql数据库3.15 使用python操作mysql数据库(PyMySQL)3.15.1. PyMySQL的安装1)使用命令安装:pip install pymysql2)使用Pycharm安装3.15.2. python连接数据库1)参看参数2)创建

	python进阶(十三、mysql:PyMySQL)
2015-08-11

Python进阶(三十三)-Python

取得时间相关信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,可以去官方文档了解下。时间戳是1970年到现在时间相隔的时间。   你可以试下下面的方式来取得当前时间的时间戳:import tim
2023-01-31

Python进阶(三十四)-Python

线程讲解  多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。程序的运行
2023-01-31

python进阶

一直以来有写博客的习惯,也是为了给自己做个记录,备以后查询,但是记录的很乱基本上都是工作中,遇到的一些问题或知点,并且也不连惯,今天一篇列表相关,明天一篇线程相关最近看博客有了一定的访问量,就想整理一下博客中一些知识点,这样也方便大家查询。
2023-01-30

3.Nginx配置进阶(三)

nginx配置进阶(三)==============================================================================概述: 本章我们将会继续介绍Nginx中http段的配置,内
2023-01-31

Python学习之旅(三十三)

网络通信是两台计算机上的两个进程之间的通信,而网络编程就是如何在程序中实现两台计算机的通信P协议负责把数据从一台计算机通过网络发送到另一台计算机TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序
2023-01-30

Python进阶,ConfigParse

原文链接和公众号文章链接:http://note.youdao.com/noteshare?id=dfec323b2c6509d7189453ec730b3870⊂=7D7493D6D746490BA55C0997FF1BC465更多文章教
2023-01-31

Python进阶笔记

列表生成式函数的参数类型lambda函数map, reduce, filter, sorted函数eval, exec, join, zip函数itertools中的函数copy与deepcopy函数模块os、sys模块迭代器生成器迭代器参
2023-01-31

Python 3 进阶 —— prin

在 Python 中,print 可以打印所有变量数据,包括自定义类型。在 2.x 版本中,print 是个语句,但在 3.x 中却是个内置函数,并且拥有更丰富的功能。参数选项可以用 help(print) 来查看 print 函数的参数解
2023-01-31

Python学习之旅(三十四)

UDP编程相对TCP,UDP则是面向无连接的协议使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包虽然用UDP传输数据不可靠,但它的优点是和TCP比,速度快,对于不要求可靠到达的数据,就可以使用UDP协议
2023-01-30

Python学习之旅(三十二)

Python内置了turtle库,可以在计算机上绘图运动控制:1、画笔定位到坐标(x,y):turtle.goto(x,y)2、向正方向运动 distance 长的距离:turtle.forward(distance)3、向负方向运动 di
2023-01-30

Python进阶---python实现s

python中没有substring的定义,但是有更轻巧的实现,可以通过数组的slice来截取字符串例如,在java中我们这样截取字符串:String s = "Hello OutOfMemory.CN";String small = s.
2023-01-31

Python入门教程(三十)Python的PIP

这篇文章主要介绍了Python入门教程(三十)Python的PIP,PIP是Python包或模块的包管理器,本章带你们看一下如何使用PIP命令,需要的朋友可以参考下
2023-05-18

Python之函数进阶

一.形参的动态参数: 动态参数,用于参数不确定时用. 格式:def fun (*args)fun(args)1. 动态接收位置参数:动态参数必须在位置参数后.列子1.假如参数不确定时,如下的列子,每人饭量不一样,吃的种类不一样,此时用到动态
2023-01-30

Python学习之旅(三十七)

程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。而如何定义数据的存储格式就是一个大问题。为了便于程序保存和读取数据,而且,能直
2023-01-30

编程热搜

目录