目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
pymysql 数据库实训案例

六、pymysql  数据库实训案例

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库。

使用pip安装PyMySQL,命令如:pip install PyMySQL

 PyMySQL操作MYSQL的流程及常用对象:

1.Connection对象

Connection对象即为数据库连接对象,在python中可以使用pymysql.connect()方法创建Connection对象


Connection对象支持的方法:


上述表中的事务机制可以确保数据一致性。

2.Cursor对象

   cursor称为游标,它负责执行SQL语句和获取结果。


在MySQL数据库已经启动的前提下,拥有可以连接数据库的用户名和密码,并且有操作数据,pymysql使用的步骤如下:

1.导入模块     

import pymysql

2.创建数据库连接对象

conn = pymysql.connect(host,port,user,password,database,charset)

3.使用数据库连接对象调用cursor()方法创建游标

curObj = conn.cursor()

4.编写SQL语句字符串,并执行SQL语句

strsql = '''增删改查的SQL语句 '''

curObj.execute(strsql,参数)

5.提交事务并关闭游标

con.commit()

curObj.close()

6.关闭数据库连接

conn.close()

【例】pymysql使用步骤示例

import pymysql

# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4;数据库名称

conn = pymysql.connect("localhost", "root", "123456", "jxgl")

# 通过cursor()函数创建一个游标对象cursor

cursor = conn.cursor()

# 使用execute()方法执行SQL查询

cursor.execute('SELECT VERSION()')

# 使用 fetchone()方法获取单条信息

db_version = cursor.fetchone()

print("MySQL数据库的版本号:%s" % db_version)

# 关闭数据库连接、

conn.close()

运行结果:

MySQL数据库的版本号:5.7.17-log

练习举例:

1、

import pymysql

# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称

db = pymysql.connect(host='localhost',

                     user='mysql',

                     password='root',

                     db='mrdb',

                     charset='utf8')

#db = pymysql.connect("localhost", "root", "root", 'utf8')

# 使用 cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询

cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取单条数据.

data = cursor.fetchone()

print ("Database version : %s " % data)

# 关闭数据库连接

db.close()

2、

import pymysql

#db='mrsoft'

db = pymysql.connect(host='localhost',

                     user='root',

                     password='root',

                     db='mrdb',

                     charset='utf8')

cursor = db.cursor()

sql = "select version()"

cursor.execute(sql)

data = cursor.fetchone()

print(data)

db2=cursor.execute("SELECT  *  FROM  books  ")

print(db2)

cursor.close()

db.close()

3、

import pymysql

# 打开数据库连接

# db = pymysql.connect("localhost", "root", "root", "mrdb")

db = pymysql.connect(host='localhost',

                     user='root',

                     password='root',

                     db='mrdb',

                     charset='utf8')

# 使用 cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

# 使用 execute() 方法执行 SQL,如果表存在则删除

cursor.execute("DROP TABLE IF EXISTS books")

# 使用预处理语句创建表

sql = """

CREATE TABLE books (

  id int(8) NOT NULL AUTO_INCREMENT,

  name varchar(100) NOT NULL,

  category varchar(50) NOT NULL,

  price decimal(10,2) DEFAULT NULL,

  publish_time date DEFAULT NULL,

  PRIMARY KEY (id)

) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

"""

# 执行SQL语句

cursor.execute(sql)

# 关闭数据库连接

db.close()

4、

# 打开数据库连接

#db = pymysql.connect("localhost", "root", "root", "mrdb",charset="utf8")

db = pymysql.connect(host='localhost',

                     user='root',

                     password='root',

                     db='mrdb',

                     charset='utf8')

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# 数据列表

data = [("零基础学 Python",'Python','79.80','2018-5-20'),

        ("Python 从入门到精通",'Python','69.80','2018-6-18'),

        ("零基础学PHP",'PHP','69.80','2017-5-23'),

        ("PHP项目开发实战入门",'PHP','79.80','2016-5-23'),

        ("零基础学Java",'Java','69.80','2017-5-23'),

        ]

try:

    # 执行sql语句,插入多条数据

    cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)

    # 提交数据

    db.commit()

except:

    # 发生错误时回滚

    db.rollback()

# 关闭数据库连接

db.close()



import pymysql


# 打开数据库连接

# db = pymysql.connect("localhost", "root", "root", "mrdb")

db = pymysql.connect(host='localhost',

                     user='root',

                     password='root',

                     db='mrdb',

                     charset='utf8')

# 使用 cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

# 使用 execute() 方法执行 SQL,

db2=cursor.execute("SELECT  *  FROM  S  ")

print(db2)

# 关闭数据库连接

db.close()


开发实训:

运用PyMySQL开发网店会员管理系统,该系统主要实现会员注册、会员登录、密码修改以及会员信息的删除等功能,首先创建数据库:ShopMember,同时定义用于存放会员信息的userinfo表,其表结构的脚本如下:

DROP TABLE IF EXISTS `userinfo`;

CREATE TABLE `userinfo` (

  `userid` int(11) NOT NULL AUTO_INCREMENT,

  `username` varchar(50) DEFAULT NULL,

  `userpwd` char(10) DEFAULT NULL,

  `phone` char(11) DEFAULT NULL,

  `email` varchar(50) DEFAULT NULL,

  PRIMARY KEY (`userid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;