12.爬虫---PyMysql安装与使用
12.PyMysql安装与使用
- 1.安装 PyMySQL
- 2.使用PyMySQL
- 2.1创建数据表
- 2.2连接数据库
- 2.3增加数据
- 2.4修改数据
- 2.5查询数据
- 2.6删除数据
- 2.7关闭连接
- 3.总结
MySQL 安装可以看这篇文章MySql 安装与使用(非常详细)
1.安装 PyMySQL
PyMySQL是Python中用于连接MySQL数据库的库,安装起来非常简单。通常情况下,只需要在命令行中执行以下命令即可:
pip install pymysql
如果你使用的是Python 3,可能需要使用pip3来安装:
pip3 install pymysql
此外,还可以通过PyCharm的设置界面来进行安装:
- 打开PyCharm的设置界面(File -> Settings -> Project Interpreter)。
- 点击右上角的加号,搜索框内输入“pymysql”。
- 选择需要的版本,点击Install按钮进行安装。

2.使用PyMySQL
连接MySQL数据库时,你需要提供数据库的主机名、端口、用户名、密码、数据库名称等信息。这些信息可以放在一个字典中,然后传递给pymysql.connect()函数。例如:
2.1创建数据表
/*Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 80020Source Host : localhost:3306Source Schema : dddTarget Server Type : MySQLTarget Server Version : 80020File Encoding : 65001Date: 18/06/2024 09:53:21
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for t_role
-- ----------------------------
DROP TABLE IF EXISTS `t_role`;
CREATE TABLE `t_role` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称',`code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色code',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',`deleted` bigint NOT NULL DEFAULT 0 COMMENT '是否已删除',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;
2.2连接数据库
import pymysqlconfig = {'host': 'localhost','port': 3306,'user': 'username','password': 'password','database': 'database_name'
}connection = pymysql.connect(**config)
执行结果:
<pymysql.connections.Connection object at 0x00000175D87BA860>
2.3增加数据
向数据库中插入数据,需要先准备好SQL语句和插入值,然后使用游标的execute()方法执行插入操作。最后,别忘了调用commit()方法来提交事务。
# 添加
cursor = connection.cursor()
sql = "INSERT INTO t_role (name, code) VALUES (%s, %s)"
values = ("普通用户1", "user")
cursor.execute(sql, values)
connection.commit()
cursor.close()
执行结果:

2.4修改数据
修改数据同样需要先准备SQL语句和可能的参数,然后执行execute()方法,并通过commit()方法提交事务。
# 修改
cursor = connection.cursor()
sql = "UPDATE t_role SET code = 'Python' WHERE id = 6"
cursor.execute(sql)
connection.commit()
cursor.close()
执行结果:

2.5查询数据
使用游标(Cursor)对象来执行SQL查询。游标对象可以通过连接对象的cursor()方法获得。执行查询后,可以使用fetchall()或fetchone()方法来获取查询结果。
cursor = connection.cursor()
cursor.execute("SELECT * FROM table")
results = cursor.fetchall()
for row in results:print(row)
cursor.close()
执行结果:
(1, '超级管理员', 'Python', datetime.datetime(2021, 9, 10, 19, 27, 55), datetime.datetime(2024, 6, 18, 9, 18, 19), 0)
(2, '管理员', 'admin', datetime.datetime(2021, 9, 10, 19, 27, 55), datetime.datetime(2021, 9, 10, 19, 27, 55), 0)
(6, '普通用户1', 'Python', datetime.datetime(2024, 6, 18, 9, 36, 23), datetime.datetime(2024, 6, 18, 9, 38, 38), 0)
2.6删除数据
删除数据同样需要先准备SQL语句和可能的参数,然后执行execute()方法,并通过commit()方法提交事务。
cursor = connection.cursor()
sql = "DELETE FROM t_role WHERE id = 6"
cursor.execute(sql)
connection.commit()
cursor.close()
执行结果:

2.7关闭连接
在完成所有数据库操作后,应该关闭游标和连接,释放资源。可以使用close()方法来关闭游标和连接。
cursor.close()
connection.close()
3.总结
PyMySQL是一个功能强大且易于使用的库,它简化了Python与MySQL之间的交互。无论是进行简单的查询,还是复杂的CRUD操作,PyMySQL都能提供清晰、简洁的接口。此外,由于它是纯Python编写的,因此安装和使用都非常简单。如果你需要在Python项目中与MySQL数据库进行交互,PyMySQL无疑是一个很好的选择。
相关文章:
12.爬虫---PyMysql安装与使用
12.PyMysql安装与使用 1.安装 PyMySQL2.使用PyMySQL2.1创建数据表2.2连接数据库2.3增加数据2.4修改数据2.5查询数据2.6删除数据2.7关闭连接 3.总结 MySQL 安装可以看这篇文章MySql 安装与使用(非常详细) 1.安装 PyMySQL PyMySQL是Python中用于连接MySQL…...
VS2022遇到的两个问题
问题一:找不到定义的头文件 别的博主说是:在属性页里面进行改写,改成是,我试过之后并不行; 解决思路:但其实在右边视图里面找到你自己定义的头文件加到你运行文件中就行;因为程序就只有一个入口…...
【Android14 ShellTransitions】(六)SyncGroup完成
这一节的内容在WMCore中,回想我们的场景,是在Launcher启动某一个App,那么参与动画的就是该App对应Task(OPEN),以及Launcher App对应的Task(TO_BACK)。在确定了动画的参与者后&#x…...
技术管理转型之战:决策之道-管理中的智慧与策略
文章目录 引言一、决策的重要性二、常见的决策方式1. 理性决策(Rational Decision Making)2. 有限理性(Bounded Rationality)3. 直觉决策(Intuitive Decision Making)4. 循证管理(Evidence-Base…...
Shell脚本:条件语句(if、case)
目录 硬编码 硬编码的缺点 条件判断 $? 命令行语句 判断指定目录是否存在 判断指定文件是否存在 判断指定对象是否存在 表达式形式语句 判断对象是否存在 判断对象是否有权限 与、或、非 运算 与运算 或运算 非运算 比较大小 判断磁盘利用率实验步骤 字符串…...
在Linux上为Windows目标配置Qt交叉编译
问题描述 我想使用Linux x86_64主机为Windows x86_64目标交叉编译Qt库(最终也包括我的应用程序)。我觉得自己已经接近成功了,但可能对整个过程有一些基本的误解。 我从在我的Fedora机器上安装所有mingw包开始,并修改了win32-g的…...
Introduction to linear optimization 第 2 章课后题答案 11-15
线性规划导论 Introduction to linear optimization (Dimitris Bertsimas and John N. Tsitsiklis, Athena Scientific, 1997), 这本书的课后题答案我整理成了一个 Jupyter book,发布在网址: https://robinchen121.github.io/manual-introdu…...
Java——包
一、包 1、简要介绍 在Java编程语言中,包(Package) 是一种用来组织和管理类(Class)和接口(Interface)的机制。包为开发者提供了一种逻辑分组的方式,使代码更加模块化、结构化和易于…...
Pipeline知识小记
在scikit-learn(通常缩写为sklearn)中,Pipeline是一个非常重要的工具,它允许你将多个数据转换步骤(如特征选择、缩放等)和估计器(如分类器、回归器等)组合成一个单一的估计器对象。这…...
postman国内外竞争者及使用详解分析
一、postman简介 Postman 是一款广泛使用的 API 开发和测试工具,适用于开发人员和测试人员。它提供了一个直观的界面,用于发送 HTTP 请求、查看响应、创建和管理 API 测试用例,以及自动化 API 测试工作流程。以下是 Postman 的主要功能和特点…...
人工智能对决:ChatGLM与ChatGPT,探索发展历程
图: a robot is writing code on a horse, By 禅与计算机程序设计艺术 目录 ChatGLM:...
探索Python元类的奥秘及其应用场景
探索Python元类的奥秘及其应用场景 一、引言 在Python中,元类(Metaclasses)是一个相对高级且容易被忽视的主题。然而,对于深入理解Python的面向对象编程模型以及进行高级框架和库的设计来说,元类是一个不可或缺的工具…...
C语言基础关键字的含义和使用方法
关键字在C语言中扮演着非常重要的角色,它们定义了语言的基本构造和语法规则,通过使用关键字,开发者可以创建变量、定义数据类型、控制程序流程(如循环和条件判断)、声明函数等。由于这些字是保留的,所以编…...
【Golang - 90天从新手到大师】Day09 - string
系列文章合集 Golang - 90天从新手到大师 String 一个字符串是一个不可改变的字节序列。字符串可以包含任意的数据,但是通常是用来包含人类可读的文本。 len()返回字符串字节数目(不是rune数)。 通过索引可以访问某个字节值,0…...
网络安全与区块链技术:信任与安全的融合
# 网络安全与区块链技术:信任与安全的融合 在网络空间,信任是一种宝贵而稀缺的资源。区块链技术以其独特的分布式账本、加密算法和共识机制,为构建网络安全提供了新的解决方案。本文将探讨网络安全与区块链技术如何融合,以增强信…...
MySQL之复制(九)
复制 复制管理和维护 确定主备是否一致 在理想情况下,备库和主库的数据应该是完全一样的。但事实上备库可能发生错误并导致数据不一致。即使没有明显的错误,备库同样可能因为MySQL自身的特性导致数据不一致,例如MySQL的Bug、网络中断、服务…...
【面试干货】 Java 中的 HashSet 底层实现
【面试干货】 Java 中的 HashSet 底层实现 1、HashSet 的底层实现2、 HashSet 的特点3、 总结 💖The Begin💖点点关注,收藏不迷路💖 HashSet 是 Java 集合框架中的一个重要成员,它提供了不存储重复元素的集合。但是&am…...
爬虫经典案例之爬取豆瓣电影Top250(方法二)
在上一篇文章的基础上,改进了代码质量,增加了多个正则表达式匹配,但同事也增加了程序执行的耗时。 from bs4 import BeautifulSoup import requests import time import re from random import randint import pandas as pdurl_list [https…...
如何优化React应用的性能?
优化React应用的性能是一个多方面的过程,涉及到代码的编写、组件的设计、资源的管理等多个层面。以下是一些常见的性能优化策略: 避免不必要的渲染: 使用React.memo、useMemo和useCallback来避免组件或其子组件不必要的重新渲染。 代码分割: 使用React.…...
css文字镂空加描边
css文字镂空加描边 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>文字镂空</title><style>/* 公用样式 */html,body{width: 100%;height: 100%;position: relative;}/* html{overflow-y: scroll;} */*{margi…...
嵌入式Linux启动优化实战:从U-Boot到应用的全链路加速
1. 项目概述与优化价值作为一名在嵌入式领域摸爬滚打了十多年的老工程师,我深知产品启动速度对于用户体验和系统性能的“第一印象”有多重要。尤其是在像全志T113这类面向工控、物联网、智能终端的应用处理器平台上,从按下电源键到应用界面就绪ÿ…...
【免费下载】 MySQL Connector/Java 8.0.29 驱动包
MySQL Connector/Java 8.0.29 驱动包 【下载地址】MySQLConnectorJava8.0.29驱动包 本仓库提供了一个用于Java应用程序连接MySQL数据库的JDBC驱动包。具体文件为 mysql-connector-java-8.0.29.jar,适用于MySQL数据库版本8.0.29。 项目地址: https://gitcode.com/o…...
vue-fastapi-admin项目扩展与二次开发:插件化架构设计思路
vue-fastapi-admin项目扩展与二次开发:插件化架构设计思路 【免费下载链接】vue-fastapi-admin ⭐️ 基于 FastAPIVue3Naive UI 的现代化轻量管理平台 A modern and lightweight management platform based on FastAPI, Vue3, and Naive UI. 项目地址: https://gi…...
LLaMA论文里没细说的三个“小”改进:RMSNorm、SwiGLU和RoPE到底强在哪?
LLaMA模型三大底层优化技术解析:RMSNorm、SwiGLU与RoPE的设计哲学 当大多数人关注大语言模型的参数量级时,LLaMA团队却在微观架构层面做了一系列精妙改进。这些看似微小的技术选择,实则是支撑模型高效运行的关键支柱。本文将带您深入LLaMA的&…...
二维码识读设备选购全攻略:从核心需求到实战测试
1. 项目概述:为什么选对二维码识读设备这么重要?你可能觉得,不就是扫个码吗?手机摄像头都能搞定,专门的设备能有多大区别?我刚开始接触这个领域时也是这么想的,直到自己踩过几次坑,才…...
taotoken用量看板如何帮助开发者清晰掌握各模型消耗详情
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 taotoken用量看板如何帮助开发者清晰掌握各模型消耗详情 对于使用多个大模型进行开发的团队或个人而言,成本管理是一个…...
在数字记忆成为个人财富的时代,如何让微信对话成为永恒珍藏?
在数字记忆成为个人财富的时代,如何让微信对话成为永恒珍藏? 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_…...
STC32G单片机开发实战:GPIO模式配置与寄存器详解
1. STC32G单片机GPIO基础认知 第一次拿到STC32G开发板时,我习惯性地想用STM32那套HAL库来操作GPIO,结果发现根本行不通。这就像拿着汽车钥匙去开保险箱,虽然都是"开锁",但机制完全不同。STC32G作为增强型8051架构单片机…...
手持式身份核验测温一体机:从防疫工具到智能终端的深度解析与应用
1. 项目概述:一个被低估的“防疫哨兵”你可能在商场、写字楼、医院或者社区的入口见过它——一个看起来像固定电话机,或者一个带屏幕的扫码盒子,旁边还伸出一个测温探头。这就是我们今天要聊的主角:手持式身份核验测温一体机。很多…...
Adobe-GenP 3.0:5分钟解锁Adobe全家桶的专业方案
Adobe-GenP 3.0:5分钟解锁Adobe全家桶的专业方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为高昂的Adobe订阅费用发愁吗?Adobe-Ge…...
