pymsql模块
老师的博客地址: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模块的更多相关文章
- mysql创建用户与pymsql模块
mysql 创建用户及增删改查 创建mysql 用户 with grant option 表示用户不存在自主创建 grant [ select ……,insert ……| all ] on 库名.表名 ...
- python3操作pymsql模块
pymysql是python中操作mysql的模块. 1.pymysql模块的安装 pip3 install pymysql 也可以使用pycharm这个IDE工具来安装pymysql这个模块. 2. ...
- Python pymsql模块
pymsql pymysql这款第三方库可以帮助我们利用python语言与mysql进行链接 基本使用 首先要下载pymysql pip install pymsql 以下是pymysql的基本使用 ...
- pymsql模块使用
数据库连接客户端 链接:https://pan.baidu.com/s/1pM0h4SV 密码:614v sql指令基本用法:
- python - pymysql模块
pymsql 模块 基本应用介绍: # 安装模块 pip install PyMySql # 导入模块 import pymysql # 配置连接信息 config = { 'host':'127.0 ...
- MySQL数据库篇之pymysql模块的使用
主要内容: 一.pymysql模块的使用 二.pymysq模块增删改查 1️⃣ pymsql模块的使用 1.前言:之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库, 那如何在p ...
- MySQL py模块的链接Navicat可视化工具
数据库可视化工具Navicat 1 基本操作: 1 库 表 字段 记录(增删改查) 2 添加主建,添加自增. 3 添加外键,外键的链接 4 模型建表,模型添加外键.(逆向数据库到模型,运行SQL文件 ...
- 循序渐进Python3(十)-- 1 -- pymysql
使用pymsql 模块操作数据库 #!/usr/bin/env python , ),()]), user='root', passwd='123456', db='test')# 创建游标curso ...
- Python自动化运维之18、Python操作 MySQL、pymysql、SQLAchemy
一.MySQL 1.概述 什么是数据库 ? 答:数据的仓库,和Excel表中的行和列是差不多的,只是有各种约束和不同数据类型的表格 什么是 MySQL.Oracle.SQLite.Access.MS ...
随机推荐
- 有了iron-node,调试Nodejs就是怎么so easy
全局安装 iron-node工具 cnpm install -g iron-node 运行iron-node iron-node ./build/dev-server.js 调试效果图
- ActionMQ集群部署
ActiveMQ集群部署 一.应用场景 消息中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间件.目 ...
- oracle 12C利用dbca建库13步
oracle用户登录然后命令行执行:dbca 如果没有此命令可以用:find / -name "dbca"查到后执行. 1.选择Create a database 2.选择Adva ...
- Asp.Net Core WebApi (Swagger+EF Core/Code First)
Swagger简介: Swagger™的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能. ...
- rabbitmq.config配置参数详解
rabbitmq.config详细配置参数 详细使用方法请点击:http://www.cnblogs.com/wyt007/p/9073316.html Key Documentation tcp_l ...
- 【Node.js】一、搭建基于Express框架运行环境+更换HTML视图引擎
1)安装express generator生成器 这个express generator生成器类似于vue-cli脚手架工具,用来创建一个后端项目,首先我们要对生成器进行全局安装,在cmd中输入下 ...
- 痞子衡嵌入式:ARM Cortex-M文件那些事(0)- 文件关联
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的文件关联. 本篇是文件系列第一篇,本系列文章会逐一介绍ARM Cortex-M开发过程中(以IAR集成开发环境为例,其他开发 ...
- 简单了解http协议-1
一.概述 1.了解web及网络基础 1.1.使用http协议访问web,web页面是如何呈现的? 1.2.什么是HTTP,概念及特性 1).HTTP协议是Hyper Text Transfer Pro ...
- js中如何在不影响既有事件监听的前提下新增监听器
一. 需求澄清 比如某个按钮已经绑定了2-3个对Window对象的load事件的监听,现在需要添加一个新的对click事件的监听器,但在一定条件下才会同时触发原有的2-3个load监听器,否则只触发新 ...
- openjduge 求简单表达式的值
表达式求值 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 131072kB 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. 输入 输入仅有一行 ...