python连接MySQL数据库使用pymysql
开头
经过这么一段时间的学生信息管理系统的摸爬滚打,不断的学习更新的知识,不断修改自己的认知,针对pymysql以及MySQL数据库的知识做个总结,以纪念我这段时间的学习。
目录
开头
pymysql的使用流程
1.导入pymysql的工具包
方法一、使用pip工具
可能会出现的问题
方法二、使用pycharm中配置到python解释器
可能会出现的问题
2.连接数据库
3. 使用cursor获取游标
4.根据游标使用相关的方法
5.关闭游标和数据库
为什么要关闭游标?
为什么要关闭数据库?
为什么要回滚事务?
结尾
pymysql的使用流程
pymysql的使用也是有一定流程的,需要有如下几步
1.导入pymysql的工具包
方法一、使用pip工具
可以使用pip工具,在终端中输入如下代码
pip install pymysql
可能会出现的问题
方法一的pip工具需要把scripts配置到系统中,打开环境变量,把scripts的文件路径复制,然后添加到系统变量中就可以了
方法二、使用pycharm中配置到python解释器

此时需要点击settings——Project:项目名——Python Interpreter
然后点击右侧这一栏,这是你的项目,选中有着python解释器的项目
点击这个+号——Available Packages中的下面有个放大镜的一栏,输入pymysql即可,然后Install Package即可,不过此时仍需要等待它提示安装好了
可能会出现的问题
点击+号之后,等待好久pycharm的packages显示不出来,建议就是清除缓存,然后重启;
2.连接数据库
当然是需要你去连接你的数据库了,如果不链接的话,你怎么用MySQL数据库呢。
import json
import pymysqlclass DatabaseConnect:_json_config = None # 设置一个类属性@classmethod # 使用静态方法,注解告诉解释器要干什么def load(cls, json_path=r'E:\UBD_3\database_login.json'):if not cls._json_config:with open(json_path, 'r') as f:cls._json_config = json.load(f) # 通过该cls对象给类属性添加相关的信息,以实现只读一次json文件# print(_json_config)def __init__(self):try:self.load()# self.connect_database()except Exception as e:print('初始化过程错误' + str(e))def connect_database(self):try:db = pymysql.connect(host=self._json_config['host'],port=self._json_config['port'],user=self._json_config['username'],password=self._json_config['password'],charset=self._json_config['charset'],database=self._json_config['database'])print('数据库连接成功')return db # 这里返回db是为了之后使用游标更方便except pymysql.Error as e:print(f"数据库连接异常: {type(e).__name__}: {e}")
上述代码中关键连接部分在 connect_database方法中,然后根据你的host、port、user、password、database等参数需要使用,这样才可以连接到MySQL数据库,相应的设置异常捕获机制自然会更容易做好。![]()
3. 使用cursor获取游标
pymysql的方法使用需要用到游标
首先,需要创建游标对象根据你的连接的返回值,上述代码连接数据库的方法返回了db
然后,创建游标对象
# 创建游标对象
cur = db.cursor()
4.根据游标使用相关的方法
sqlquery = 'select * from students where id=%d' # 这里的from之后的students是你的数据库中的表
value = None # 这里的value值需要你自己传入
cur.execute(sqlquery, value) # pymysql库有自动匹配的方法,虽然你自己可以传入的%s,然后他会去转成int型,不过你传入的数据不能是错误的
result = cur.fetchall() # 获取返回值
print(result) # 把返回值输出出来
5.关闭游标和数据库
首先,会提出这个问题,为什么要去关闭游标和数据库,然后又会提出各种问题
为什么要关闭游标?
1.为了释放资源,在游标使用的过程之中,它会占用一定的内存资源来存储信息,如果不及时关闭的话看这些资源会被一直浪费;它还会影响到数据库的连接,可能现在你有100个可以进行连接的游标接口,然后你创建了一百个游标,那你之后创建的游标可能就无法使用了。
2.为了保持数据的一致,当你创建了一个游标,然后又创建了一个游标之后,你进行的操作分别在这两个游标之后,然后你第二个创建的游标的跟的方法就可能会读出来第一个游标方法返回的数据。当你进行一个类似的操作的时候,如果返回的值也是类似的话,可以考虑是游标未关闭造成的,这个数据返回与预期不一致的问题。
为什么要关闭数据库?
是这么理解的,就像是你拿个桶要接水,除非在你后面的那个人跟你说不用关,不然你打可能会直接关掉,数据库也会像这样,使用完了就会关掉,不然都话在这之间会有浪费的资源,时间长了之后还会造成卡顿等现象,然后卡死。
为什么要回滚事务?
因为当初出现错误的时候,回滚事务可以直接回到在未执行的时候,这时候使用异常处理机制,try:成立就提交事务,不成立就回滚事务。
结尾
既然看到结尾了,那就说个再见吧,没有什么太多的了,如有不同见解,评论指教即可。
相关文章:
python连接MySQL数据库使用pymysql
开头 经过这么一段时间的学生信息管理系统的摸爬滚打,不断的学习更新的知识,不断修改自己的认知,针对pymysql以及MySQL数据库的知识做个总结,以纪念我这段时间的学习。 目录 开头 pymysql的使用流程 1.导入pymysql的工具包 方…...
AI时代下的编程趋势:程序员如何提升核心竞争力
随着人工智能和机器学习技术的飞速发展,大型语言模型和AI生成代码(AIGC)工具如ChatGPT、Midjourney、Claude等层出不穷,AI辅助编程逐渐成为现实。在这一变革的浪潮中,程序员群体面临着前所未有的挑战和机遇。一些人担忧…...
C#:基本语法
写在前面 本人在实习过程需要用C#进行开发,但本人之前的技术栈是C方向,所以在菜鸟教程上速通了一下C#的基本语法,总的来说和C还是非常相似的。 1 关键字 using关键字:使用命名空间class:使用类 2 注释 /* 这个程序…...
Redisson 实现分布式锁
文章目录 Redisson 是什么Redisson 使用客户端模式单节点模式哨兵模式主从模式集群模式Spring Boot 整合 Redisson 中的锁Redisson 可重入锁Redisson 公平锁Redisson 联锁Redisson 读写锁Redisson Redlock Redisson 的看门狗机制RedLock 解决单体故障问题如何使用 RedLockMarti…...
VMware ESXi学习笔记
esxi网络模型: 物理网卡: 一般会有多个物理网卡,用于管理口和其他(vsan) 虚拟交换机:创建虚拟交换机时,会要求选择至少1个上行链路(物理网卡) 端口组:一般一个虚拟交换机会创建两个端口组,一个虚机使用&a…...
Python 函数(2)
2、函数 2.1、函数传递列表 将列表传递给函数后,函数就能直接访问其内容。 下列为一个实例:将一个名字列表传递给一个名为greet_users()的函数,这个函数将会向列表中的每一个元素执行相应的信息。 def greet_users(name):for name in name…...
c++文件的读写
平常我们在编完代码后,基本都是从键盘输入,从屏幕输出(显示),但可不可以从其他地方输入输出呢? ………………………………………………………………………………………………………………… 其实可以&…...
春秋云境 | 文件上传 | CVE-2022-30887
目录 靶标介绍 开启靶场 上传一句话木马 蚁剑连接 找到 flag 靶标介绍 多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的是在药房和客户之间提供一套接口,客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库࿰…...
大模型+XDR!打开网络安全攻防演练新范式!
网络安全领域面临着日益复杂的挑战,外部攻击与内部安全威胁交织的双重压力。技术革新成为筑牢安全防线的关键,随着新一代技术的崛起,特别是大数据与人工智能的深度融合,引领着网络安全进入全新阶段。 通过构建网络安全大模型&…...
C语言----字符串
字符串 第一种定义 利用字符数组 双引号的方式定义字符串 char str1[4]"abc"; printf("%s\n",str1); 细节1: 在底层,实际存储的时候,c语言还是会帮我们把字符串"abc"转换成字符数组进行保存,并且在末尾还…...
ThreadLocal 详解(三)内存泄露原因,以及强弱引用
1、ThreadLocal内存泄漏 在Threadlocal的内部静态类中Entry将Threadlocal作为一个key,值作为value保存,他继承WeakReference,super(k),代表了Threadlocal对象是一个弱引用; static class Entry extends WeakReference…...
【Android面试八股文】说一说Android开发模式之MVC、MVP、MVVM的区别?
文章目录 一、 MVC(Model-View-Controller)二、 MVP(Model-View-Presenter)三、MVVM(Model-View-ViewModel)四、示例代码4.1. MVC 示例4.2. MVP 示例4.3. MVVM 示例五、总结在Android开发中, MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-…...
多叉树的深度优先遍历(以电话号码的字母组合为例)
在我们的座机上,都有这种数字与字母对应的按键。 以此为例,讲解多叉树的深度优先遍历 问题 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同…...
【YashanDB数据库】PHP无法通过ODBC连接到数据库
【问题分类】驱动使用 【关键字】ODBC、驱动使用、PHP 【问题描述】应用使用php-fpmnginx架构,通过php的ODBC拓展连接YashanDB时出现报错: [unixODBC][Driver Manager]Cant open lib /home/yashandb_odbc/libyas_odbc.so: file not found但是在应用所…...
C++ | Leetcode C++题解之第326题3的幂
题目: 题解: class Solution { public:bool isPowerOfThree(int n) {return n > 0 && 1162261467 % n 0;} };...
Ubuntu20.4上搭建FFMPEG开发环境
编译ffmpeg命令如下: 1.安装yasm(ffmpeg里面有汇编语言的部分,所以需要安装一下yasm) wget 5http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar xvzf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install 2.安装nasm(2.13以上…...
谷粒商城实战笔记-144-性能压测-性能监控-堆内存与垃圾回收
文章目录 一,两种类型的应用1,CPU密集型应用示例:Apache Spark 2,IO密集型应用示例:MySQL 二,监控 我们通过压力测试对接口进行了性能评估,以确定其是否满足性能要求。 如果不符合,就…...
大模型综述
《Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond》论文阅读 模型架构 两种架构: encoder-decoder架构/encoder架构:T5/BERTdecoder架构:GPT4 特点LLMsencoder-decoderorencoder-onlyBERT-style训练:掩码语言模型类型:…...
Python 常用内置函数
目录 1、enumerate函数 1.1、for循环中使用 1.2、enumerate指定索引的起始值 1.3、enumerate在线程中的作用 2、Map 函数 2.1、map()函数可以传多个迭代器对象 3、lambda表达式(匿名函数) 示例 4、sort函数和sorted函数 4.1、sort()函数 4.2、…...
什么是大数据?
1. 大数据定义 大数据到底是什么? 大数据的定义是数据种类更多、数量更多、速度更快。这也被称为三个“V”。 简单来说,大数据是更大、更复杂的数据集,尤其是来自新数据源的数据集。这些数据集非常庞大,传统数据处理软件根本无…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
验证redis数据结构
一、功能验证 1.验证redis的数据结构(如字符串、列表、哈希、集合、有序集合等)是否按照预期工作。 2、常见的数据结构验证方法: ①字符串(string) 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...
RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上
一、软件介绍 文末提供程序和源码下载 RushDB 改变了您处理图形数据的方式 — 不需要 Schema,不需要复杂的查询,只需推送数据即可。 二、Key Features ✨ 主要特点 Instant Setup: Be productive in seconds, not days 即时设置 :在几秒钟…...
