#转载请联系

在写内容之前,先放一张图,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交互的更多相关文章

  1. 二十、Python与Mysql交互

    先安装一个python与MySQL交互的包:MySQL-python $ gunzip MySQL-python-1.2.2.tar.gz $ tar -xvf MySQL-python-1.2.2. ...

  2. MySQL之Python与Mysql交互

    一:Python操作MySQL步骤 1:Python中操作MySQL的步骤 2.引入模块 在.py文件中引入pymysql模块 import pymysql pymysql是python的一个第三方与 ...

  3. python与mysql交互中的各种坑

    开始学python 交互MySQLdb,踩了很多坑 第一个 %d format: a number is required, not str 参照以下博客: https://blog.csdn.net ...

  4. python与MySQL

    一.python与mysql交互 因版本不同python操作mysql有两个模块,python3不再支持MySQL-python,模块使用都一样: python2.7:MySQL-python pyt ...

  5. 前端和后端的数据交互(jquery ajax+python flask+mysql)

    上web课的时候老师布置的一个实验,要求省市连动,基本要求如下: 1.用select选中一个省份. 2.省份数据传送到服务器,服务器从数据库中搜索对应城市信息. 3.将城市信息返回客户,客户用sele ...

  6. 第一节、Alex 讲解 python+mysql 交互;

    Python Mysql 交互 A.Alex 的语法展示: import MySQLdb  try:      conn=MySQL.connect(host='localhost',user='ro ...

  7. MySQL(10) - Python与MySQL的交互

    1.MySQL驱动模块Connector的语法 1.1.下载驱动 进入官网下载对应版本驱动 1.2.创建连接 方式一: import mysql.connector con = mysql.conne ...

  8. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  9. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

随机推荐

  1. POJ 3076 / ZOJ 3122 Sudoku(DLX)

    Description A Sudoku grid is a 16x16 grid of cells grouped in sixteen 4x4 squares, where some cells ...

  2. POJ 1144 Network(割点)

    Description A Telephone Line Company (TLC) is establishing a new telephone cable network. They are c ...

  3. JSONP跨域jQuery处理整理(附天气数据实例)

    写在前面 跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨 ...

  4. python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  5. android桌面悬浮窗仿QQ手机管家加速效果

    主要还是用到了WindowManager对桌面悬浮进行管理. 需要一个火箭的悬浮窗 一个发射台悬浮窗  ,判断火箭是否放到了发射台,如果放上了,则使用AsyTask 慢慢将火箭的图片往上移.结束后., ...

  6. io学习-相关文章

    文章:IO编程 地址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143 ...

  7. HDU I-最少拦截系统

    http://acm.hdu.edu.cn/showproblem.php?pid=1257 Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦 ...

  8. 详细解析@Resource和@Autowired的区别 , 以及@Qualifier的作用

    (41)  (0) 首先 . @Resource是javax.annotation 包中的注解类 , 是jdk中封装的 . @AutoWired是spring的中注解,依赖于spring上下文. 相同 ...

  9. powerdesigner 外键生成sql语句设置在创建表里面

    根据情况需要将创建外键表的sql语句生成在创建表的sql语句中,如下设置:

  10. OI中组合数的若干求法与CRT

    OI中组合数的若干求法与CRT 只是下决心整理一下子呢~ 说明:本篇文章采用\(\binom{a}{b}\)而不是\(C_{a}^b\),以\(p\)指代模数,\(fac_i\)指代\(i!\),\( ...