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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
Python读取图片属性信息的实现方法
Sep 11 Python
python开发利器之ulipad的使用实践
Mar 16 Python
有关Python的22个编程技巧
Aug 29 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
python使用PIL实现多张图片垂直合并
Jan 15 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
Jan 15 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
Mar 09 Python
零基础小白多久能学会python
Jun 22 Python
python collections模块的使用
Oct 16 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 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入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
js变换显示图片的实例
2013/04/16 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
python tkinter基本属性详解
2019/09/16 Python
pandas数据处理进阶详解
2019/10/11 Python
如何在 Django 模板中输出 "{{"
2020/01/24 Python
Python通过len函数返回对象长度
2020/10/22 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
高中生毕业学习总结的自我评价
2013/11/14 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
电子商务实训报告总结
2014/11/05 职场文书
国庆节慰问信
2015/02/15 职场文书