老师的博客地址:http://www.cnblogs.com/wupeiqi/articles/5713330.html

通过pymysql 模块可以通过朋友去操作mysql 数据库,首先的在pip上配置好pymysql模块。然后进行如下操作,简单的模拟用数据库去登录的操作。

模拟登陆

mport pymysql
use=input('user:')
psw=input('password:')
#建立连接 host地址 database是具体的数据库
conn=pymysql.connect(host='localhost',user='root',password='',database='review60')
# 进入数据后建立光标
cursor=conn.cursor()
#info是指数据库的某个表 注意如果mysql是字符串的数据类型,一定要记得加上啊'',否则就会报错
sql="select * from info where user=%s and password=%s" %(use,psw,)
#光标执行sql里面的代码cursor.execute(sql)#这个其实是有返回值的,表示影响了及行,一般是删改查的时候会有用。#得到执行代码说返回的信息
result=cursor.fetchone()
#两个关闭,关闭数据库
cursor.close()
conn.close()
print(result)
if result:
print('登陆成功')
else:
print('登录失败')

上面的操作有一定的风险,请看下面。

当你的用户输入:sdf' or 1=1 -- 或者 :正确的用户名' --  时肯定登录成功,
因为sql 就变成了select * from info where user='%s' and password='%s'
mysql的注释是 -- 所以就能够绕开后面的直接拿到信息
sql="select * from info where user=%s and password=%s"
cursor.execute(sql,use,psw)# cursor.execute(sql,[use,psw)])
cursor.execute(sql,[use,psw])
sql="select * from info where user=%(u)s and password=%(p)s" #%(use,psw,)
cursor.execute(sql,{'u':use,'p':psw})
输入多个时的写法
sql="select * from info where user=%s and password=%s"
cursor.execute(sql,[(1,2),(3,4)])#其他类似的操作也可

关于数据库的commit和注册用户

import pymysql
print('注册用户')
use=input('user:')
psw=input('password:')
conn=pymysql.connect(host='localhost',user='root',password='',database='review60')
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)#获取的是一个字典的形式
sql="insert into info(user,password) values (%s,%s)"#此时就不需要加上''了
a=cursor.execute(sql,[use,psw])
print('数据影响的行数:',a)#数据影响的行数
print('自增的id:',cursor.lastrowid)#获取新的自增的id
conn.commit()#一定要提交,不然写入的数据会没有效果,就是写入失败
cursor.close()
conn.close()
print('注册成功')

对于commit时,可以在处理完完个数据时,在commit这样的效率便会高上许多。

关于fetch与查询

import pymysql
print('查询数据库')
conn=pymysql.connect(host='localhost',user='root',password='',database='review60')
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)#得到信息是以字典的形式
sql='select * from info'
cursor.execute(sql)
a=cursor.fetchone()
print('前一条数据:',a)
#将光标往上移动一个
cursor.scroll(-1,mode='relative')
b=cursor.fetchmany(2)#得到前两条数据 print('前两条数据:',b)
#将光标移动到最开始的位置
cursor.scroll(0,mode='absolute')
c=cursor.fetchall()
print('全部数据:',c)
cursor.close()
conn.close()

注意由于fetchall是抓取全部的数据,你不知道数据库的东西到底有多大,所以的配合limit来使用。

pymsql模块的更多相关文章

  1. mysql创建用户与pymsql模块

    mysql 创建用户及增删改查 创建mysql 用户 with grant option 表示用户不存在自主创建 grant [ select ……,insert ……| all ] on 库名.表名 ...

  2. python3操作pymsql模块

    pymysql是python中操作mysql的模块. 1.pymysql模块的安装 pip3 install pymysql 也可以使用pycharm这个IDE工具来安装pymysql这个模块. 2. ...

  3. Python pymsql模块

    pymsql pymysql这款第三方库可以帮助我们利用python语言与mysql进行链接 基本使用 首先要下载pymysql pip install pymsql 以下是pymysql的基本使用 ...

  4. pymsql模块使用

    数据库连接客户端 链接:https://pan.baidu.com/s/1pM0h4SV 密码:614v  sql指令基本用法:

  5. python - pymysql模块

    pymsql 模块 基本应用介绍: # 安装模块 pip install PyMySql # 导入模块 import pymysql # 配置连接信息 config = { 'host':'127.0 ...

  6. MySQL数据库篇之pymysql模块的使用

    主要内容: 一.pymysql模块的使用 二.pymysq模块增删改查 1️⃣  pymsql模块的使用 1.前言:之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库, 那如何在p ...

  7. MySQL py模块的链接Navicat可视化工具

     数据库可视化工具Navicat 1 基本操作: 1 库 表 字段 记录(增删改查) 2 添加主建,添加自增. 3 添加外键,外键的链接 4 模型建表,模型添加外键.(逆向数据库到模型,运行SQL文件 ...

  8. 循序渐进Python3(十)-- 1 -- pymysql

    使用pymsql 模块操作数据库 #!/usr/bin/env python , ),()]), user='root', passwd='123456', db='test')# 创建游标curso ...

  9. Python自动化运维之18、Python操作 MySQL、pymysql、SQLAchemy

    一.MySQL 1.概述 什么是数据库 ? 答:数据的仓库,和Excel表中的行和列是差不多的,只是有各种约束和不同数据类型的表格 什么是 MySQL.Oracle.SQLite.Access.MS ...

随机推荐

  1. 死磕NodeJs之REPL与For Server,我的艰辛的旅程(一)

    ode.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接 ...

  2. 『Pushing Boxes 双重bfs』

    Pushing Boxes Description Imagine you are standing inside a two-dimensional maze composed of square ...

  3. C# 《编写高质量代码改善建议》整理&笔记 --(一)基本语言篇

     题记:这是自己的观后感,工作两年了,本来打算好好学习设计模式,或者作为客户端深入了解GPU编程的,但是突然发现还有这么一本书. <编写高质量代码改善建议>,感觉这正是自己需要的. 我是做 ...

  4. javascript深入理解js闭包(转载)

    此篇文章来源于http://www.jb51.net/article/24101.htm 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全 ...

  5. mysqldump备份表中有大字段失败的排错过程

    几天前收到某个业务项目,MySQL数据库逻辑备份mysqldump备份失败的邮件,本是在休假,但本着工作认真负责,7*24小时不间断运维的高尚职业情操,开始了DBA的排错之路(一开始数据库的备份都是成 ...

  6. 完美数据迁移-MongoDB Stream的应用

    目录 一.背景介绍 二.常见方案 1. 停机迁移 2. 业务双写 3. 增量迁移 三.Change Stream 介绍 监听的目标 变更事件 四.实现增量迁移 五.后续优化 小结 附参考文档 一.背景 ...

  7. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2 新增解压缩工具类ZipHelper

    在项目对文件进行解压缩是非常常用的功能,对文件进行压缩存储或传输可以节省流量与空间.压缩文件的格式与方法都比较多,比较常用的国际标准是zip格式.压缩与解压缩的方法也很多,在.NET 2.0开始,在S ...

  8. js内存深入学习(一)

    一. 内存空间储存 某些情况下,调用堆栈中函数调用的数量超出了调用堆栈的实际大小,浏览器会抛出一个错误终止运行.这个就涉及到内存问题了. 1. 数据结构类型 栈: 后进先出(LIFO)的数据结构  堆 ...

  9. Promise杂记

    更好的阅度体验 前言 API Promise特点 状态跟随 V8中的async await和Promise 实现一个Promise 参考 前言 作为一个前端开发,使用了Promise一年多了,一直以来 ...

  10. .Net语言 APP开发平台——Smobiler学习日志:如何调用API进行短信发送

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 二.发送短信代码 VB: Pr ...