pymysql模块的操作实例


Posted in Python onDecember 17, 2019

pymysql 模块!

pymysql模块时一个第三方模块!需要下载:

pymysql的基本使用:

import pymysql

conn = pymysql.connect(
  user = 'root',
  password = '123',
  host = '127.0.0.1', # ip地址
  port = 3306,    # 端口
  charset = 'utf8',
  database = 'day36_1'
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 产生游标对象
# cursor=pymysql.cursors.DictCursor 将查询出来的结果制成字典的形式返回
sql = "select * from userinto"
res = cursor.execute(sql) #执行sql语句

res = cursor.fetchone() # 打印一条数据
res = cursor.fetchall() # 可以打印里面的所有数据
res = cursor.fetchmany(2)  #制定获取几条数据,如果数字超了也不报错

print(res)

cursor.scroll(2, 'relative') #相对移动 , 基于指针所在位置, 往后偏移

cursor.scroll(3, 'absolute') #绝对移动,基于起始位置往后偏移

print(cursor.fetchall())

我们可以通过python导入模块来连接数据库,进行登陆注册功能,在使用时sql会遇到注入问题

sql注入问题 利用特殊符号和注释语法 巧妙的绕过真正的sql校验,是用户数据不安全
关键性的数据 不要自己手动去拼接 而是交由execute帮你去做拼接

import pymysql

conn = pymysql.connect(
  user = 'root' ,
  password = '123',
  host = '127.0.0.1',
  port = 3306,
  database = 'day36_1',
  charset = 'utf8'
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#获取用户名和密码,然后取数据库中校验
username = input('username>>>:').strip()
password = input('password>>>:').strip()
sql = "select * from userinto where name=%s and password=%s"
print(sql)
cursor.execute(sql, (username, password)) #交由execute帮你去做拼接,解决注入问题
res = cursor.fetchall()

if res:
  print(res)
else:
  print('username or password error!')

我们也可以利用pycharm来操作数据库文件的增删改查!

针对增 删 改操作 执行重要程度偏高

你如果真想操作 必须有一步确认操作(commit)

import pymysql
conn = pymysql.connect(
  user = 'root',
  passwd = '123456',
  db = 'day36',
  host = '127.0.0.1',
  port = 3306,
  charset = 'utf8',
  autocommit = True # 自动提交确认
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# #查: 获取用户输入的用户名和密码 然后取数据库中校验
# username = input('username>>>:').strip()
# password = input('password>>>:').strip()
# # sql = "select * from userinfo where name='%s' and password= '%s'"%(username,password)
# sql = "select * from userinfo where name=%s and password= %s"
# print(sql)

# 增
sql = "insert into userinfo(name,password,dep_id) values('jason',789,1)"
# 改
# sql = "update userinfo set name='egondsb' where id = 6"
# 删除
# sql = "delete from userinfo where id= 1"
res = cursor.execute(sql)
# conn.commit() # 确认当前操作 真正的同步到数据库
print(res)

以上就是相关知识点内容,感谢大家的学习和对三水点靠木的支持。

Python 相关文章推荐
python实现数通设备tftp备份配置文件示例
Apr 02 Python
python实现数据图表
Jul 29 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
Python爬虫实现验证码登录代码实例
May 10 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Pytorch evaluation每次运行结果不同的解决
Jan 02 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
Python Map 函数的使用
Aug 28 Python
python开发入门——列表生成式
Sep 03 Python
基于PyTorch实现一个简单的CNN图像分类器
May 29 Python
Django异步任务线程池实现原理
Dec 17 #Python
python 求10个数的平均数实例
Dec 16 #Python
python 经典数字滤波实例
Dec 16 #Python
Python实现把类当做字典来访问
Dec 16 #Python
python中p-value的实现方式
Dec 16 #Python
基于python读取.mat文件并取出信息
Dec 16 #Python
python基于plotly实现画饼状图代码实例
Dec 16 #Python
You might like
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
javascript基本算法汇总
2016/03/09 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
python+opencv实现阈值分割
2018/12/26 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
C#面试问题
2016/07/29 面试题
公司授权委托书范本
2014/04/03 职场文书
出国英文推荐信
2014/05/10 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
工人先进事迹材料
2014/12/26 职场文书
大学生团员个人总结
2015/02/14 职场文书
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL
Sql Server之数据类型详解
2022/02/28 SQL Server