权限管理
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)的更多相关文章

  1. 数据库开发-pymysql详解

    数据库开发-pymysql详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python支持的MySQL驱动 1>.什么是驱动 与MySQL通信就是典型的CS模式.Se ...

  2. Mysql(九):Python连接MySQL数据库之pymysql模块使用

    Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...

  3. 【Python+Django+Pytest】数据库异常pymysql.err.InterfaceError: (0, '') 解决方案

    问题背景: 接口自动化测试平台,在执行测试案例之外,还需要做以下五件事情(或步骤): 1.查询用户在数据准备中预置的测试套件层数据初始化相关sql  (setUp_class方法中) 2.查询用户在数 ...

  4. Python 3.5 连接Mysql数据库(pymysql 方式)

    由于 MySQLdb 模块还不支持 Python3.x,官方的Mysql连接包只支持到3.4,所以 Python3.5 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通 ...

  5. python数据库操作pymysql

    安装数据库: pip3 install pymysql 进行数据库的更新.插入.查询等操作: #!/usr/bin/python3.4 # -*- coding: utf-8 -*- #------- ...

  6. 数据库入门-pymysql模块的使用

    一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...

  7. Python连接MySQL数据库之pymysql模块使用

    安装PyMySQL pip install pymysql PyMySQL介绍 PyMySQL是在python3.x版本中用于连接MySQL服务器的一个库,2中则使用mysqldb. Django中也 ...

  8. Python连接MySQL数据库之pymysql模块

    pymysql 在python3.x 中用于连接MySQL服务器的一个库:Python2中则使用mysqldb pymysql的模块的基本的使用 # 导入pymysql模块 import pymysq ...

  9. 自动化测试之数据库操作pymysql

    1.下载并导入pymysql 2.配置参数连接mysql db = pymysql.connect(**config) config = { 'host': str(host), 主机地址 'user ...

  10. 数据库以及pymysql

    1.pymysql模块操作数据库详细 import pymysql # user = 'chun' # psw = conn = pymysql.connect(host='localhost',us ...

随机推荐

  1. PLINK pca

    #coding:utf-8 __author__ = 'similarface' import os import pandas as pd import matplotlib.pyplot as p ...

  2. JavaScript中的对象冒充

    JavaScript里没有继承关键字,想要继承一个类需要用到“对象冒充”. <!DOCTYPE html> <html xmlns="http://www.w3.org/1 ...

  3. 15.3.14 DP练习2

    拦截导弹 题目 某国为了防御敌国的导弹突击,发展出一种导弹拦截系统. 可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以到达随意的高度.可是以后每一发炮弹都不能高于前一发的高度. 某天,雷达捕捉 ...

  4. hdu6070 Dirt Ratio 二分+线段树

    /** 题目:hdu6070 Dirt Ratio 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意:给定n个数,求1.0*x/y最小是多少.x ...

  5. 无状态会话Bean、有状态会话Bean、CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码?

    无状态会话Bean.有状态会话Bean.CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码? A.无状态会话Bean B.有状态会话Bean C.CMP D.BMP 解答:C

  6. eventlet设计模式

    1. 客户端模式(Client Pattern) 一个权威的客户端模式就是网络爬虫,下面例子列出一些站点URL,并尝试检索他们的网页内容以做后续操作 import eventlet from even ...

  7. jquery添加!important样式

    $("span.colorFlag").parents("th").css("cssText","background-color ...

  8. (转)java中Executor、ExecutorService、ThreadPoolExecutor介绍

    转自: http://blog.csdn.net/linghu_java/article/details/17123057 ScheduledThreadPoolExecutor介绍: http:// ...

  9. 利用jsonrpc技术包装uiautomator

    昨天一天在网上搜索解决上一篇文章中的exception: monkeyrunner内置uiautomator出错的原因 尽管没找到解决办法.可是让我无意中发现了一个好工具,比sl4a更好用的工具.直接 ...

  10. linux软件的安装和卸载

    http://blog.chinaunix.net/uid-25572546-id-1995028.html