(数据库之pymysql)
权限管理
http://www.cnblogs.com/linhaifeng/articles/7267587.html#_label6
一、pymysql模块(安装与查询)
1、安装pymysql(python专用的mysql客户端套接字)
pip3 install pymysql 2、mysql 查询
import pymysql conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='jxtz0927',
database='db40',
charset='utf8' #防止乱码
)
cursor=conn.cursor(pymysql.cursors.DictCursor) #将产生的结果以字典的形式显示 [{'Tables_in_db40': 'department'}, {'Tables_in_db40': 'employee'}]
# cursor=conn.cursor() # (('department',), ('employee',)) # rows=cursor.execute('show tables;') #rows 为受影响的行数
rows=cursor.execute('select * from class;')
print(rows) # print(cursor.fetchone()) #一条
print(cursor.fetchmany(2)) #几条
print(cursor.fetchall()) #全部 cursor.scroll(3,'absolute') #mode='absolute',绝对模式,从最开始位置向后移三条
cursor.scroll(1,'relative') #mode='relative',相对模式,从当前位置向后移一条 cursor.close()
conn.close() 二、pymysql模块(防止sql注入问题)
1、错误做法, 自行对字符串进行拼接,引发sql注入问题 (name= egon' --asdfg; name=xxxx'or 1=1--asdfg)
import pymysql conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db42',
charset='utf8'
) cursor=conn.cursor(pymysql.cursors.DictCursor) inp_user=input('用户名>>:').strip() #inp_user=""
inp_pwd=input('密码>>:').strip() #inp_pwd=""
sql="select * from user where username='%s' and password='%s'" %(inp_user,inp_pwd) #自行拼接,引发sql注入问题
print(sql) rows=cursor.execute(sql)
if rows:
print('登录成功')
else:
print('登录失败') cursor.close()
conn.close() 2、在服务端防止sql注入问题:不要自己拼接字符串,让pymysql模块去拼接
import pymysql conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db42',
charset='utf8'
)
cursor=conn.cursor(pymysql.cursors.DictCursor) inp_user=input('用户名>>:').strip() #inp_user=""
inp_pwd=input('密码>>:').strip() #inp_pwd=""
sql="select * from user where username=%s and password=%s"
print(sql) rows=cursor.execute(sql,(inp_user,inp_pwd))
if rows:
print('登录成功')
else:
print('登录失败') cursor.close()
conn.close() 三、pymysql模块(增删改)
import pymysql conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db42',
charset='utf8'
)
cursor=conn.cursor(pymysql.cursors.DictCursor) sql='update user set username="alexSB" where id=2'
rows=cursor.execute(sql) #改数据
print(rows)
print(cursor.lastrowid) sql='insert into user(username,password) values(%s,%s)'
rows=cursor.executemany(sql,[('lwz',''),('evia',''),('lsd','')]) #一次插入多行记录
print(rows)
print(cursor.lastrowid) #显示插到哪行了(id) conn.commit() # 只有commit提交才会完成真正的修改
cursor.close()
conn.close()
(数据库之pymysql)的更多相关文章
- 数据库开发-pymysql详解
数据库开发-pymysql详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python支持的MySQL驱动 1>.什么是驱动 与MySQL通信就是典型的CS模式.Se ...
- Mysql(九):Python连接MySQL数据库之pymysql模块使用
Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...
- 【Python+Django+Pytest】数据库异常pymysql.err.InterfaceError: (0, '') 解决方案
问题背景: 接口自动化测试平台,在执行测试案例之外,还需要做以下五件事情(或步骤): 1.查询用户在数据准备中预置的测试套件层数据初始化相关sql (setUp_class方法中) 2.查询用户在数 ...
- Python 3.5 连接Mysql数据库(pymysql 方式)
由于 MySQLdb 模块还不支持 Python3.x,官方的Mysql连接包只支持到3.4,所以 Python3.5 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通 ...
- python数据库操作pymysql
安装数据库: pip3 install pymysql 进行数据库的更新.插入.查询等操作: #!/usr/bin/python3.4 # -*- coding: utf-8 -*- #------- ...
- 数据库入门-pymysql模块的使用
一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...
- Python连接MySQL数据库之pymysql模块使用
安装PyMySQL pip install pymysql PyMySQL介绍 PyMySQL是在python3.x版本中用于连接MySQL服务器的一个库,2中则使用mysqldb. Django中也 ...
- Python连接MySQL数据库之pymysql模块
pymysql 在python3.x 中用于连接MySQL服务器的一个库:Python2中则使用mysqldb pymysql的模块的基本的使用 # 导入pymysql模块 import pymysq ...
- 自动化测试之数据库操作pymysql
1.下载并导入pymysql 2.配置参数连接mysql db = pymysql.connect(**config) config = { 'host': str(host), 主机地址 'user ...
- 数据库以及pymysql
1.pymysql模块操作数据库详细 import pymysql # user = 'chun' # psw = conn = pymysql.connect(host='localhost',us ...
随机推荐
- java强行删除文件(针对进程正在使用的文件的删除)
boolean result = f.delete(); if(!result) { System.gc(); f.delete; }
- makefile之short函数
函数名称:排序函数-$(sort LIST) 函数功能:给字串"LIST"中的单词以首字母为准进行排序(升序),并去掉重复的单词. 返回值:空格分割的没有重复单词的字串. 函数说明 ...
- WEB前端的性能优化
转自:http://www.2cto.com/kf/201604/498725.html 网站的划分一般为二:前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发 ...
- perl基础01
参考:Perl教程 1.Perl简介 Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的. Perl具有高级语言的强大能 ...
- python_集合_笔记
集合 特性: a.确定性(元素必须可以hash) b.互异性(去重) c.无序性(集合中的元素没有先后之分) 集合关系测试 交集 & jihe1.intersection(jihe2) 差集 ...
- Android Intent 用法全面总结(转载)
1. [代码]调用拨号程序 1 2 3 4 // 给移动客服10086拨打电话 Uri uri = Uri.parse("tel:10086"); Intent intent = ...
- 字符串的数字部分递增,如user00000001后面的数字部分递增+1
使用存储过程方式 bengin declare@namevarchar(50) set@name=(selectmax(right('user00000001',8<8是从后往前数,从1开始&g ...
- 第一百五十九节,封装库--JavaScript,表单序列化结合ajax提交数据
封装库--JavaScript,表单序列化结合ajax提交数据 封装库,表单序列化方法 /** xu_lie_biao_dan()方法,表单序列化方法,将自动获取指定表单里面的各项字段name值和va ...
- 文件I/O:文件流→序列化
★文件流 文件操作是最简单最直接也是最容易想到的一种方式,我们说的文件操作不仅仅是通过FileInputStream/FileOutputStream这么“裸”的方式直接把数据写入到本地文件(像我以前 ...
- Openstack(Kilo)安装系列之Keystone(四)
创建租间.用户.角色 一.To configure prerequisites 1.Configure the authentication token: export OS_TOKEN=ADMIN_ ...