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

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

模拟登陆

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

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

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

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

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

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

关于fetch与查询

  1. import pymysql
  2. print('查询数据库')
  3. conn=pymysql.connect(host='localhost',user='root',password='',database='review60')
  4. cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)#得到信息是以字典的形式
  5. sql='select * from info'
  6. cursor.execute(sql)
  7. a=cursor.fetchone()
  8. print('前一条数据:',a)
  9. #将光标往上移动一个
  10. cursor.scroll(-1,mode='relative')
  11. b=cursor.fetchmany(2)#得到前两条数据
  12.  
  13. print('前两条数据:',b)
  14. #将光标移动到最开始的位置
  15. cursor.scroll(0,mode='absolute')
  16. c=cursor.fetchall()
  17. print('全部数据:',c)
  18. cursor.close()
  19. 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. 来了,老弟!__二进制部署kubernetes1.11.7集群

    Kubernetes容器集群管理 Kubernetes介绍 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S.K8S是Go ...

  2. AspNetCore taghelpers标签的使用

    下面介绍几种常用的Tag标签 asp-for 类似于name asp-validation-for 类似于mvc下的验证,将的验证来源于model的验证特性 asp-validation-summar ...

  3. 『宝藏 状态压缩DP NOIP2017』

    宝藏(NOIP2017) Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的m 条道路和它们的长度. 小明决 ...

  4. java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的

    本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...

  5. Chapter 5 Blood Type——17

    "I'll be coming around with a dropper of water to prepare your cards, so please don't start unt ...

  6. 补习系列(11)-springboot 文件上传原理

    目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...

  7. 【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾

    在搜索引擎优化领域,静态网页对于SEO的优化有着很大的好处,因此很多人就想把自己的网站的一些网页做成伪静态.我们现在在网络上发现很多博客网站.论坛网站.CMS内容管理系统等都有使用伪静态这一种情况,伪 ...

  8. Linux 查找最大文件

    1.使用命令df -h 查看硬盘空间  2.使用命令du -h –max-depth=1 /var/log/* 查看/var/log路径下文件的大小 du -sh /* 查看哪个目录最大,一步一步的查 ...

  9. HTTP协议的六种请求方法

    抛砖引玉,聊下概念性的东西先: HTTP协议 (Hyper Text Transfer Protocol) HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件.图像.结果等,即是一个客 ...

  10. Android安全–Dex文件格式详解

    Dex文件是手机上类似Windows上的EXE文件,dex文件是可以直接在Dalvik虚拟机中加载运行的文件. 首先我们来生成一个Dex文件. 新建文件Hello.java内容如下: class He ...