python高级之操作数据库

 

python高级之操作数据库

本节内容

  1. pymysql介绍及安装
  2. 使用pymysql执行sql
  3. 获取新建数据自增ID
  4. fetch数据类型设置

1.pymysql介绍及安装

在python2中连接数据库使可以使用mysqldb模块,为什么在python3中使用pymysql模块呢?因为在python2中mysqldb和pymysql都可以操作数据库,但是当python升级到3以后,pymysql模块支持python3了,但是mysqldb模块目前还不支持python3,所以用python3的小伙伴们还是先用pymysql吧。pymysql和mysqldb的使用方法基本相同。

安装pymysql可以使用pip安装:

 1 pip3 install pymysql 

安装完成之后在python解释器中执行import pymysql如果不报错说明安装成功了。

2.使用pymysql执行sql

 1 import pymysql  # 导入模块
2
3 conn=pymysql.connect(host="192.168.12.120",port=3306,user="root",passwd="123456",db="sql_example",charset="utf8")
4 # 注意,这里传入的参数必须是关键字参数,不能省略关键字,否则将连接不上数据库
5 # conn.autocommit() # 如果设置了这个属性,则会自动commit sql语句,而不需要手动commit
6 cursor=conn.cursor() # 创建游标
7 # cursor.execute("insert into class(caption) values('全栈二班')")
8
9 r=cursor.execute("select * from class") # 执行查询语句并返回查询的数据行数
10 print(r) # 打印行数
11 # print(cursor.fetchall()) # 打印返回的所有数据,数据结构是元祖套元祖((),()),里面的一个元祖就是一行数据
12 # print(cursor.fetchmany(num)) # 打印返回的num条数据,数据结构是元祖套元祖((),()),里面的一个元祖就是一行数据
13 print(cursor.fetchone()) # 打印返回的数据中第一行数据,结构是只有一个元祖
14 cursor.scrroll() # 修改游标的位置
15
16 conn.commit() # 手动提交要执行的sql
17 cursor.close() # 关闭游标
18 conn.close() # 关闭连接

注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

  • cursor.scroll(1,mode='relative') # 相对当前位置移动
  • cursor.scroll(2,mode='absolute') # 相对绝对位置移动

3.获取新建数据自增ID

 1 conn = pymysql.connect(host="192.168.12.120",port=3306,user="root",passwd="123456",db="sql_example",charset="utf8")
2 cursor = conn.cursor()
3 cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
4 ## executemany可以执行多条插入语句,后面接的数据需要是一个可迭代的对象,一般是列表里面套元祖或列表
5 conn.commit()
6 cursor.close()
7 conn.close()
8
9 # 获取最新自增ID
10 new_id = cursor.lastrowid # 通过cursor.lastrowid可以获取获取最新行的自增ID

表里面只能有一个字段设置为自增ID。。。

4.fetch数据类型设置

关于默认获取的数据是元祖类型,如果想要获得字典类型的数据,即:

 1 conn = pymysql.connect(host="192.168.12.120",port=3306,user="root",passwd="123456",db="sql_example",charset="utf8")
2
3 # 游标设置为字典类型
4 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
5 r = cursor.execute("call p1()")
6
7 result = cursor.fetchone()
8
9 conn.commit()
10 cursor.close()
11 conn.close()
 
分类: python高级
 
好文要顶 关注我 收藏该文

第九篇:python高级之操作数据库的更多相关文章

  1. python高级之操作数据库

    python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...

  2. python MySQLdb用法,python中cursor操作数据库(转)

    数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TESTDB. 在TESTDB数据库中您已经创建了表 EMPLOYEE EMPLOYEE表字段为 FIRST_NAME, LAST_N ...

  3. Python 高级网络操作 - Python Advanced Network Operations

    Python 高级网络操作 - Python Advanced Network Operations Half Open Socket, 一个单向的 socket 被称为 half open sock ...

  4. Python之路【第九篇】堡垒机基础&数据库操作

    复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...

  5. 基于Python的接口自动化实战-基础篇之pymysql模块操作数据库

    引言 在进行功能或者接口测试时常常需要通过连接数据库,操作和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操作是否正确等.因此,在进行接口自动化测试时,我们一样绕不开接 ...

  6. 第七篇: python高级之多线程

    21 interest=0.05 22 count=amount+amount*interest 23 24 self.withdraw(count) 25 26 27 def transfer(_f ...

  7. python中cursor操作数据库(转)

    原文出处:http://doudouclever.blog.163.com/blog/static/175112310201284115340663/ python 操作数据库,要安装一个Python ...

  8. 10 python学习笔记-操作数据库(十)

    在功能.接口测试中,常常需要通过数据库的操作,来准备数据.检测环境及核对功能.接口的数据库操作是否正确. 在自动化测试中,就需要我们用代码连接数据库自动完成数据准备. 环境检查及数据库断言的功能.数据 ...

  9. Python之路(第九篇)Python文件操作

    一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r",encoding = “utf ...

随机推荐

  1. In machine learning, is more data always better than better algorithms?

    In machine learning, is more data always better than better algorithms? No. There are times when mor ...

  2. 【itext】7步制作兼容各种文档格式的Itext5页眉页脚 实现page x pf y

    itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...

  3. Vim识别编码

    http://blog.chinaunix.net/uid-20357359-id-1963123.html

  4. 使用lombok

    Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长.通过在开发环境中实现Lombok,开发人 员可以节省构建诸如hashCode()和equals()这样的方法以及以 ...

  5. Android应用--新浪微博客户端新特性滚动视图和启动界面实现

    新浪微博客户端新特性滚动视图和启动界面实现 2013年8月20日新浪微博客户端开发之启动界面实现 前言: 使用过新浪微博客户端的童鞋都清楚,客户端每一次升级之后第一次启动界面就会有新特性的介绍,用户通 ...

  6. nginx -- 安装配置Nginx

    安装说明 系统环境:CentOS-6.3 软件:nginx-1.2.6.tar.gz 安装方式:源码编译安装  安装位置:/usr/local/nginx  下载地址:http://nginx.org ...

  7. 【转】Android:Bluetooth 的打开和关闭--不错

    原文网址:http://www.ifeegoo.com/android-turn-on-and-turn-off-bluetooth.html 摘要:Android 中打开和关闭 Bluetooth ...

  8. 【转】如何使用Unity创造动态的2D水体效果

    原文:http://gamerboom.com/archives/83080 作者:Alex Rose 在本篇教程中,我们将使用简单的物理机制模拟一个动态的2D水体.我们将使用一个线性渲染器.网格渲染 ...

  9. [IoLanguage]Io Tutorial[转]

    Io Tutorial   Math   Io> 1+1 ==> 2 Io> 2 sin ==> 0.909297 Io> 2 sqrt ==> 1.414214 ...

  10. HTTP协议介绍(SERVLET)

    本文是servlet的入门篇,主要简单介绍下http协议 1.什么是HTTP _ 1.http协议:_1. 复杂解释:   http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议 ...