pymysql模块的操作实例
数据库  /  管理员 发布于 6年前   149
pymysql 模块!
pymysql模块时一个第三方模块!需要下载:
pymysql的基本使用:
import pymysqlconn = 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 pymysqlconn = 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 pymysqlconn = 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)
以上就是相关知识点内容,感谢大家的学习和对AIDI的支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号