Python与Mysql交互
#转载请联系
在写内容之前,先放一张图,bling~

这张图算是比较详细的表达出了web开发都需要什么。用户访问网页,就是访问服务器的网页文件。这些网页文件由前端工程师编写的。服务器通常用nginx/apache(LNMP/LAMP)。这时候,用户能浏览到页面了。当用户需要登录时,肯定要核对用户名密码正不正确呀。这时候,服务器会把数据传输给web框架了,就是我们的python应用程序。python应用程序和mysql数据库进行通信,查询一下这个用户的用户名和密码,再对比一下服务器传来的。两者一致,就可以登录啦。所以,python在web全过程中充当着处理数据的作用。
既然是处理数据,那么与数据库的通信是必不可少的了。现在就开始了解下他们怎么实现通信。

1.安装pymysql模块
2.pymysql的使用
- import pymysql
- 创建connection连接对象
conn = pymysql.connection(host='localhost',user='xxx',password='xxx',database='xxx',port=xxx,charset='utf8')
- 取得cursor游标对象
cur = conn.cursor() # 取得的是元组游标
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) # 拓展!取得的是字典游标
- 通过cursor游标执行sql命令
affect_rows = cur.execute('sql语句')
# 执行SQL语句,返回受影响的行数
# affect_rows是受影响的行数,一个数
- 通过cursor游标取得执行结果
result = cur.fetchall()
print(result)
# cur.fetchone()返回一个元组,形如(1,'妲己',18)
# cur.fetchall()获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回,形如((1,'公孙离',20),(2,'妲己',18))
# 注意:用fetchone抓取一条数据后,再用fetchall抓取数据,是从第二条开始抓取,抓取剩余的全部
- 如果是对数据库的增删改,还有提交这一步骤。
conn.commit()
- 关闭游标cursor
cur.close()
- 关闭连接
conn.close()
python与mysql交互的方式很简单,但是有一个大坑一定要注意,不然真的老是出错!
通过一个程序来看下这个坑!
import pymysql def main():
conn = pymysql.connect(host='localhost',port=3306,user='root',password='xxx',
database='db_jingdong',charset='utf8')
cur = conn.cursor()
item = input("请输入你要查询商品信息的商品id:")
cur.execute('select * from goods where id=%s' % item)
result = cur.fetchall()
print(result) if __name__ == '__main__':
main()
看第9行!
item是input获取的,所以是字符串。字符串在python中输出都是带 " " 的。但是!他在第9行插进 sql 语句时,不会把 " " 带进去,只带自己的值。所以他在 sql 语句中是一个整数!
所以,当我们的 sql 语句需要 " " 时,一定要写,字符串的 " " 是带不进去的!
说在最后,其实这篇文章的操作还有不足之处。就是恶意的人会通过input输入其他内容,就可以获取数据库的其他内容!
原理是什么?怎么避免?请看我的这一篇博文:https://www.cnblogs.com/chichung/p/9596716.html
Python与Mysql交互的更多相关文章
- 二十、Python与Mysql交互
先安装一个python与MySQL交互的包:MySQL-python $ gunzip MySQL-python-1.2.2.tar.gz $ tar -xvf MySQL-python-1.2.2. ...
- MySQL之Python与Mysql交互
一:Python操作MySQL步骤 1:Python中操作MySQL的步骤 2.引入模块 在.py文件中引入pymysql模块 import pymysql pymysql是python的一个第三方与 ...
- python与mysql交互中的各种坑
开始学python 交互MySQLdb,踩了很多坑 第一个 %d format: a number is required, not str 参照以下博客: https://blog.csdn.net ...
- python与MySQL
一.python与mysql交互 因版本不同python操作mysql有两个模块,python3不再支持MySQL-python,模块使用都一样: python2.7:MySQL-python pyt ...
- 前端和后端的数据交互(jquery ajax+python flask+mysql)
上web课的时候老师布置的一个实验,要求省市连动,基本要求如下: 1.用select选中一个省份. 2.省份数据传送到服务器,服务器从数据库中搜索对应城市信息. 3.将城市信息返回客户,客户用sele ...
- 第一节、Alex 讲解 python+mysql 交互;
Python Mysql 交互 A.Alex 的语法展示: import MySQLdb try: conn=MySQL.connect(host='localhost',user='ro ...
- MySQL(10) - Python与MySQL的交互
1.MySQL驱动模块Connector的语法 1.1.下载驱动 进入官网下载对应版本驱动 1.2.创建连接 方式一: import mysql.connector con = mysql.conne ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- Python 操作 MySQL 之 pysql 与 ORM(转载)
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
随机推荐
- DM8168通过GPMC接口与FPGA高速数据通信实现
硬件:TI达芬奇TMS320DM8168(以下简称DSP).EP4CE6E22C8N(以下简称FPGA) 软件:linux-2.6.37 转载请注明出处- http://www.cnblogs.com ...
- winform 控件大小随着窗体自适应
3个方法: #region 控件缩放变量 double formWidth;//窗体原始宽度 double formHeight;//窗体原始高度 doubl ...
- MFC MDI 工程禁用win7任务栏(taskbar)多视图缩略图(preview)功能
花费了好几天,google上的把搜索关键字都想烂了终于搜出了答案 app的init函数中在创建mainframe之前调用 EnableTaskbarInteraction(FALSE);
- [Elasticsearch] 多字段搜索 (三) - multi_match查询和多数字段
multi_match查询 multi_match查询提供了一个简便的方法用来对多个字段执行相同的查询. NOTE 存在几种类型的multi_match查询,其中的3种正好和在"了解你的数据 ...
- JSP动作标识
jsp中include有两种形式: include指令:<%@ include file=""%> include动作:<jsp:include page=&qu ...
- 【bzoj2661】[BeiJing wc2012]连连看 最大费用最大流
题目描述 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y ...
- xinetd不太详的详解
xinetd不太详的详解 http://blog.sina.com.cn/s/blog_88cdde9f01019fg5.html ################################## ...
- [洛谷P1640][SCOI2010]连续攻击游戏
题目大意:有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.每种装备最多只能使用一次,且只能使用其中一种属性.装备所使用的属性值必须从1开始连续.问最多能攻击多少次? ...
- 洛谷 [SDOI2015]约数个数和 解题报告
[SDOI2015]约数个数和 题目描述 设\(d(x)\)为\(x\)的约数个数,给定\(N,M\),求$ \sum\limits^N_{i=1}\sum\limits^M_{j=1}d(ij)$ ...
- 【BZOJ4325】NOIP2015 斗地主 搜索+贪心
这个东西考试的时候一眼以为状压就压炸了考试又了一下午.....最后我打出来发现后几个点10min都过不去,我大概算了一下,可能是吧.......最后一脸懵逼的我去怂了正解,我们发现只要确定了顺子就可以 ...