[Python3]PyMySQL库

概述

本文主要讲解如何使用pymysql库进行MySQL的管理操作。

主要讲解如何使用pymysql实现增删改查动作,并附上对应的示例。

安装pymysql

pip install PyMySQL

常用对象及API

在pymysql中提供了Connection和Cursor对象来管理操作MySQL。

常用对象

  • Connection

代表一个与MySQL Server的socket连接,使用connect方法来创建一个连接实例。

  • Cursor

代表一个与MySQL数据库交互对象,使用Connection.Cursor()在当前socket连接上的交互对象。

常用API

Connection对象常用的API:

connect()   创建一个数据库连接实例
begin()     开始一个事务
close()     发送一个退出消息,并关闭连接
commit()    提交修改至数据库
cursor()    创建一个cursor(游标)实例
ping()      检测服务器是否在运行
rollback()  回滚当前事务
select_db(db)   设置当前db
show_warnings() 显示警告信息

Cursor对象常用API:

close()     关闭当前cursor
execute()   执行一个sql语句
executemany()   执行批量sql语句
fetchall()      取所有数据
fetchone()      取一条数据

一个基本示例

下面我们看一个基本的示例,让大家感受下pymysql库的能力。

基本前提,假设你在本地已经安装了MySQL服务或是你拥有远程访问某个MySQL服务的权限。

用下列sql创建一个数据表,以便下面的示例演示:

# -*- coding:utf-8 -*-

import pymysql
import random

__author__ = ‘谷白‘

if __name__ == "__main__":
    print("PyMySQL基本示例")    

    # 创建一个连接实例
    conn = pymysql.connect(
        host="10.68.3.88", # mysql服务ip地址,若服务在本机则用localhost
        port=3306,  # mysql服务端口
        user="liyiming",  # 访问mysql的用户名
        password="liyiming",  # 访问mysql的密码
        db="zzb_pro",  # 默认连接到的数据库
        charset="utf8"  # 连接字符集
    )

    try:
        # 创建用于交互的cursor对象
        cursor = conn.cursor()        

        # 先插入10条测试数据

        # 构建插入数据的sql
        sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"

        # 生成10条测试数据
        sql_data = []
        for index in range(0, 10):
            email = "%[email protected]" % random.random()
            password = random.random()
            sql_data.append((email, password))        

        # 执行sql,进行批量插入数据
        cursor.executemany(sql, sql_data)        

        # 提交至数据库
        conn.commit()        

        # 查询5条数据
        sql = "SELECT * FROM `users` LIMIT 5"

        # 执行sql
        cursor.execute(sql)        

        # 取查询到的所有数据
        all_data = cursor.fetchall()        

        # 遍历打印出来
        print("取所有查询到的数据")
        for data in all_data:
            print("id: %d email: %s password: %s" %
                (data[0], data[1], data[2]))        

        # 取1条数据
        # cursor.execute(sql)
        one_data = cursor.fetchone()
        print("\n取1条数据")
        print("id: %d email: %s password: %s" %
            (one_data[0], one_data[1], one_data[2]))

    finally:
        # 最后把数据库连接关闭
        conn.close()

小结

  • 对SQL要熟悉,才能更好的应用PyMySQL库
  • 其次要注意在构造sql时,最好构建成参数化方式,见示例
  • 多练习最重要
时间: 2024-10-21 21:54:28

[Python3]PyMySQL库的相关文章

利用PyMySQL库连接数据库

安装与准备 这是python3的库,所以windows下安装不会像python2那样各种奇葩VC错误.是比较方便的傻瓜安装. Windows平台下: py -3 -m pip install PyMySQL Linux: python3 pip install PyMySQL 当然,引入的时候: import pymysql ### 数据库连接对象connection* connection    创建connection对象* cursor()    使用该链接创建+返回游标* commit(

python3使用pymysql库连接MySQL的常用操作

#导入pymysql模块import pymysql #连接数据库connect = pymysql.connect( host='localhost', port=3306, user='root', password='root', db='shop', charset='utf8') #获取游标cursor = connect.cursor()"""游标默认获取的数据是元组类型,如果想要字典类型的数据可以使用 connect.cursor(cursor=pymysql.

python3解析库lxml

lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高 XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索 XPath的选择功能十分强大,它提供了非常简明的路径选择表达式,另外,它还提供了超过100个内建函数,用于字符串.数值.时间的匹配以及节点.序列的处理等,几乎所有我们想要定位的节点,都可以用XPath来选择 XPath

Python3标准库

文本 1. string:通用字符串操作 2. re:正则表达式操作 3. difflib:差异计算工具 4. textwrap:文本填充 5. unicodedata:Unicode字符数据库 6. stringprep:互联网字符串准备工具 7. readline:GNU按行读取接口 8. rlcompleter:GNU按行读取的实现函数 二进制数据 9. struct:将字节解析为打包的二进制数据 10. codecs:注册表与基类的编解码器 数据类型 11. datetime:基于日期与

Python3 pymysql连接MySQL数据库

#!/usr/bin/python # -*- coding:utf8 -*- import pymysql #取得数据库连接对象 conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='1234',db='python') #取得游标对象 cur = conn.cursor() #插入数据 cur.execute("INSERT INTO student(name,sex,age) VALUES('3', '0

python3 request 库

request库 虽然Python的标准库中 urllib.request 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 "HTTP for Humans",说明使用更简洁方便. Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 继承了urllib2的所有特性.Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内

python3+requests库框架设计08-发送邮件

使用python3的email模块和smtplib模块可以实现发送邮件的动能.email模块用来生成email,smtplib模块用来发送邮件,接下来看如何在生成测试报告之后,自动将邮件发给项目组的人,在Common文件夹下新建my_email.py文件,项目结构如下. #!/usr/bin/python3 import smtplib from email.mime.text import MIMEText from email.utils import formataddr from ema

Python3 pymysql 访问MySql数据库

使用pymysql来访问MySQL数据库,注意,有些使用PyMySQL,Python2是mysqldb 如没该module则安装:pip install pymysql (本人Java转Python,还有java编写习惯,有错误请及时提出,相互交流) 1.定义获取数据库连接的Module, DataBase.py import pymysql class MySQLDB: __config={ 'host' : '127.0.0.1', 'port' : 3306, 'user' : 'root

4.Python3标准库--算法

(一)functools:管理函数的工具 import functools ''' functools模块提供了一些工具来管理或扩展和其他callable对象,从而不必完全重写 ''' 1.修饰符 from functools import partial ''' functools模块提供的主要工具就是partial类,可以用来包装一个有默认参数的callable对象. 得到的对象本身就是callable,可以把它看作是原来的参数. ''' # 举个栗子 def foo(name, age,