Python 3 和 MySQL(PyMySQL) 的集成使用

news2024/10/4 1:27:15

Python 3 和 MySQL(PyMySQL) 的集成使用

引言

在当今的数据驱动世界中,数据库是任何应用程序的核心组成部分。MySQL 作为最流行的开源关系数据库管理系统之一,被广泛用于各种应用中。Python,作为一种高级编程语言,因其简洁易懂的语法和强大的库支持,成为了开发数据库应用的理想选择。PyMySQL 是一个用于连接 Python 应用程序和 MySQL 数据库的库,它提供了一个符合 Python DB-API 2.0 规范的纯 Python MySQL 客户端接口。

安装 PyMySQL

在开始使用 PyMySQL 之前,您需要确保已经在您的系统上安装了 Python 3。接下来,可以通过 pip(Python 的包管理器)轻松安装 PyMySQL。在命令行中运行以下命令:

pip install pymysql

这将自动下载并安装最新版本的 PyMySQL。

连接到 MySQL 数据库

要使用 PyMySQL 连接到 MySQL 数据库,首先需要建立与数据库的连接。这可以通过创建一个 pymysql.Connection 对象来实现。以下是一个简单的示例:

import pymysql

# 连接数据库
connection = pymysql.connect(host='localhost',
                             user='username',
                             password='password',
                             database='dbname',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        # 执行 SQL 查询
        sql = "SELECT `id`, `name` FROM `users`"
        cursor.execute(sql)
        
        # 获取查询结果
        results = cursor.fetchall()
        for row in results:
            print(row)
finally:
    connection.close()

在这个示例中,我们首先导入了 pymysql 模块,然后使用数据库的连接参数创建了一个连接对象。cursorclass=pymysql.cursors.DictCursor 参数确保查询结果以字典形式返回,这使得结果的处理更加方便。

执行 SQL 操作

通过 PyMySQL,您可以执行各种 SQL 操作,包括 SELECT、INSERT、UPDATE 和 DELETE。以下是一些基本操作的示例:

插入数据

with connection.cursor() as cursor:
    # 创建 SQL 插入语句
    sql = "INSERT INTO `users` (`name`, `age`) VALUES (%s, %s)"
    cursor.execute(sql, ('John Doe', 30))

# 提交事务
connection.commit()

更新数据

with connection.cursor() as cursor:
    # 创建 SQL 更新语句
    sql = "UPDATE `users` SET `age` = %s WHERE `name` = %s"
    cursor.execute(sql, (31, 'John Doe'))

# 提交事务
connection.commit()

删除数据

with connection.cursor() as cursor:
    # 创建 SQL 删除语句
    sql = "DELETE FROM `users` WHERE `name` = %s"
    cursor.execute(sql, ('John Doe',))

# 提交事务
connection.commit()

在执行这些操作时,请确保使用参数化查询(如上面的 %s 占位符),以防止 SQL 注入攻击。

错误处理

在执行数据库操作时,可能会遇到各种错误。PyMySQL 会抛出异常,因此可以使用 try-except 块来处理这些异常:

try:
    # ... 数据库操作 ...
except pymysql.MySQLError as e:
    print(f"Error: {e}")

结论

通过 PyMySQL,Python 开发者可以轻松地与 MySQL 数据库交互。本文介绍了如何安装 PyMySQL、建立数据库连接、执行基本的 SQL 操作,以及如何处理可能出现的错误。这些知识为您使用 Python 和 MySQL 开发数据驱动的应用程序奠定了基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2187162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C/C++/EasyX ——入门图形编程(2)

【说明】这一篇的内容都是很基础的,所以内容会很多,具体现在也不知道要写多少,先写下去吧,新手小白们都不用担心,这个内容不会很难,因为我也是从一无所知过来的,很好入门的,&#xf…

游览器输入URL并Enter时都发生了什么 面试完美回答

文章目录 前言URL解析DNS解析**浏览器缓存****操作系统缓存**:**路由器缓存**:ISP(Internet service provider)缓存DNS递归解析IP地址的获取缓存结果 建立TCP连接发送HTTP请求服务器响应TCP链接断开渲染页面解析一 HTML解析过程解…

带你快速了解后端API服务的搭建

前言:写这篇文章的初衷是想分享一下我学习搭建后端API的过程,希望能帮助到和我一样想快速写API接口并部署到服务器上的同学😜 第一步:创建阿里云服务器 1、首先注册一个阿里云账号🤗 2、出于学习成本考虑&#xff0…

Linux系统,docker容器内查看pikachu源代码

在Linux系统中,要查看Docker容器内的Pikachu的源代码,需要先确保Pikachu的Docker镜像已经运行在系统上。以下是步骤和示例代码: 1、查找Pikachu容器的ID或名称: docker ps -a 2、使用docker exec命令进入运行中的Pikachu容器&am…

Spring MVC的运行流程详解

Spring MVC作为一个广泛使用的框架,提供了灵活且强大的MVC架构支持。尤其在业务系统中,Spring MVC能够有效地处理大量并发请求,提供良好的用户体验。本文将详细讲解Spring MVC的运行流程,以电商交易系统为案例,帮助读者…

不再烦恼!四款AI工具助你轻松打造完美PPT

嘿,各位办公室的小伙伴们,今儿咱们来聊聊那些让咱们工作生活大变样的“智能小伙伴”。作为每天跟PPT打交道的办公室文员,我敢说,自从有了这些神器,我的工作效率简直坐上了火箭,嗖嗖地往上涨! 1…

Vue-Lecture1-Notes

渐进式框架 Vue 被称为“渐进式框架”,是因为它允许开发者根据项目的需求逐步引入和使用其功能,而不需要一次性使用整个框架。简单来说,Vue 提供了从简单到复杂的功能层次,可以灵活选择使用。 按需使用:Vue 的核心功能…

CSP-J Day 3 模拟赛补题报告

姓名:王胤皓,校区:和谐校区,考试时间: 2024 2024 2024 年 10 10 10 月 3 3 3 日 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00,学号: S 07738 S07738 S07738 请关注作者的…

docker运行arm64架构的镜像、不同平台镜像构建

背景 Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,实现“一次构建,到处运行”的目标。然而,不同的操作系统和硬件架构对容器镜像有不同的要求。例如,Linux 和 Windows 系统有不同的文件系统和系统调用&#…

银河麒麟桌面操作系统修改默认Shell为Bash

银河麒麟桌面操作系统修改默认Shell为Bash 💐The Begin💐点点关注,收藏不迷路💐 在银河麒麟桌面操作系统(ARM版)中,若要将默认Shell从Dash改为Bash,可执行以下步骤: 打开…

谈及医疗和教育真实需求是什么

医疗就是健康,物质基础身体棒; 教育就是心智,心理稳定智慧高。 提示:能让人内心充盈并不断提升自我能力的教育才是高品质的。 全文终结 需求量萎缩对品质端的改变-CSDN博客 与参考资料中的内容以及“贪嗔痴”的关联性进行详细扩…

【C++】vector类的模拟实现

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 本篇文章参考博客:【C】…

HTML5+CSS+JavaScript剪子石头布游戏

HTML5CSSJavaScript剪子石头布游戏 用HTML5CSSJavaScript剪子石头布游戏实现剪子石头布游戏,游戏有成绩计数,人、机输赢情况,及平局情况。 ✂代表剪刀,▉代表石头,▓ 代表布,给出人机双方的出拳情况 游戏…

对于无人机行业技术、人才、实验环境共享,这事你怎么看?

对于无人机行业技术、人才、实验环境共享这一话题,我认为这是一个具有前瞻性和积极意义的趋势,对于推动无人机行业的健康发展具有重要意义。以下是我对此事的详细看法: 一、技术共享促进创新与发展 1. 加快技术创新:技术共享能够…

web前端面试中拍摄的真实js面试题(真图)

web前端面试中拍摄的真实js面试题(真图) WechatIMG258.jpeg WechatIMG406.jpeg WechatIMG407.jpeg WechatIMG922.jpeg WechatIMG1063.jpeg © 著作权归作者所有,转载或内容合作请联系作者 喜欢的朋友记得点赞、收藏、关注哦!!…

散度旋度拉普拉斯算子速记

哈密顿运算符号想象成一个矢量(对x偏导,对y偏导,对z偏导) 1、旋度就是这个矢量做点乘 2、散度就是矢量做叉乘 3、拉普拉斯算子就是哈密顿算符点乘哈密顿算符

【自然语言处理】(1) --语言转换方法

文章目录 语言转换方法一、统计语言模型1. 词向量转换2. 统计模型问题 二、神经语言模型1. 词向量化2. 维度灾难3. 解决维度灾难4. embedding词嵌入5. Word2Vec技术5.1 连续词袋模型(CBOW)5.2 跳字模型(Skip-gram) 总结 语言转换方…

[论文笔记]SGPT: GPT Sentence Embeddings for Semantic Search

引言 解码器Transformer的规模不断壮大,轻松达到千亿级参数。同时由于该规模,基于提示或微调在各种NLP任务上达到SOTA结果。但目前为止解码器Transformer还无法应用在语义搜索或语句嵌入上。 为了简单,下文中以翻译的口吻记录,比…

平台数据分类与聚类实验报告

参考书籍:《数据流挖掘与在线学习算法》 李志杰 1.6.1 实验目的 本书内容以及课程实验主要涉及Java程序设计语言、数据挖掘工具Weka和数据流机器学习平台MOA,因此,需要安装、配置并熟悉实验环境。Java、Weka和MOA都是开源小软件&#xff0…

2024年10月2日历史上的今天大事件早读

1683年10月2日 清朝康熙帝统一台湾 1869年10月2日 印度民族解放运动领袖甘地诞辰 1890年10月2日 中共创始人之一李达诞生 1895年10月2日 天津中西学堂(天津大学前身)开学 1901年10月2日 郑士良等发起惠州起义 1909年10月2日 京张铁路正式通车 1920…