pymysql模块的操作实例

作者:猫-园 时间:2024-01-28 16:27:45 

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)

来源:https://www.cnblogs.com/lishuangjian/p/12052058.html

标签:pymysql,模块操作
0
投稿

猜你喜欢

  • Access数据库中“所有记录中均未找到搜索关键字”的解决方法

    2011-04-14 10:31:00
  • 使用anaconda的pip安装第三方python包的操作步骤

    2022-11-20 04:05:22
  • 浅谈使用Python变量时要避免的3个错误

    2022-06-20 21:07:07
  • Django form表单与请求的生命周期步骤详解

    2023-06-20 06:29:15
  • 比较文档位置

    2008-04-03 13:24:00
  • 使用Keras构造简单的CNN网络实例

    2023-08-23 04:38:21
  • 设计模式-自动完成

    2010-11-30 21:44:00
  • Python pass语句作用和Python assert断言函数的用法

    2021-03-19 12:14:08
  • Python实现的大数据分析操作系统日志功能示例

    2022-07-31 00:40:34
  • Python随机生成带特殊字符的密码

    2021-10-07 02:48:05
  • 详解PyCharm使用pyQT5进行GUI开发的基本流程

    2021-10-15 22:38:34
  • pyqt 实现QlineEdit 输入密码显示成圆点的方法

    2022-04-16 05:15:55
  • Python基于回溯法子集树模板解决取物搭配问题实例

    2023-11-20 04:46:53
  • MySQL通过自定义函数实现递归查询父级ID或者子级ID

    2024-01-19 03:30:07
  • Python 调用 C++ 传递numpy 数据详情

    2021-05-12 20:00:39
  • 基于selenium及python实现下拉选项定位select

    2023-01-13 12:17:48
  • 使用 Django Highcharts 实现数据可视化过程解析

    2022-12-27 19:18:51
  • 对python字典元素的添加与修改方法详解

    2023-10-19 09:36:04
  • Python使用matplotlib绘制三维图形示例

    2022-09-14 10:53:14
  • Python解析pcap文件示例

    2023-05-16 00:08:45
  • asp之家 网络编程 m.aspxhome.com