Python与数据库连接

新建表boss

create table 创建表
在这里插入图片描述

Code

import pymysql

con = pymysql.connect(host='localhost',\
                      user='root',\
                      password='',\
                      port=3306,\
                      db='business')
cursor=con.cursor()
cursor.execute('''create table if not exists boss(
                    id int auto_increment primary key,
                    name varchar(20)not null,
                    salary int not null)''')

添加数据

inser into添加数据
con.commit() #提交
在这里插入图片描述

Code

cursor.execute('''
        insert into boss(name,salary)
        values('Jack',91),('Harden',1300),('Pony',200)
        ''')
con.commit()#提交

删除数据

delete from删除数据
在这里插入图片描述

Code

# 删除
cursor.execute('delete from boss where salary < 100')
con.commit()

更新

update boss set salary = 2000 where name = 'Pony'
在这里插入图片描述

# 更新
cursor.execute("update boss set salary = 2000 where name = 'Pony'")
con.commit()

数据库封装

报错:AttributeError: 'UsingMysql' object has no attribute '_log_time'
解决方法:https://www.php1.cn/detail/ChengGongJieJue__4c4b7b31.html

from timeit import default_timer

import pymysql

host='losthost'
port=3306
db='business'
user='root'
password=''

# 类似参数化(PyMySQL操作数据库)
def get_connection():
    conn = pymysql.connect(host=host,port=port,db=db,user=user,password=password)
    return conn


# 使用with优化代码


class UsingMysql(object):
    def __init__(self,commit=True,log_time=True,log_label='总用时'):
        '''
        paramcommit是否在最后提交事务(设置为False的时候方便单元测试)
        paramlog_time:是否打印程序运行总时间
        paramlog_label:自定义log的文字
        '''
        self.log_time = log_time
        self.commit = commit
        self._log_label = log_label

    def __enter__(self):  # 如果需要记录时间
        if self._log_time is True:
            self._start = default_timer()
            # 在进入的时候自动获取连接和cursor
            conn = get_connection()
        cursor= conn.cursor(pymysql.cursors.DictCursor)
        conn.autocommit=False
        self._conn = conn
        self._cursor= cursor
        return self

    # 资源释放
    def __exit__(self, *exc_info):
        # 提交事务
        if self._commit:
            self._conn.commit()
        #在退出的时候自动关闭连接和cursor
        self._cursor.close()
        self._conn.close()

        if self._log_time is True:
            diff = default_timer() - self._start
            print('- % s: %.6f秒 ' % (self._log_label, diff))   #总用时

    # 不必要的封装
    # 一系列封装的业务方法
    #返回count
    # def get_count(self,sql,params=None,count_key='count(id)'):
    #     self.cursor.execute(sql.params)
    #     data = self.cursor.fetchone()
    #     if not data:
    #         return 0
    #     return data[count_key]

    # def fetch_one(self, sql,params=None):

if __name__ == '__main__':
    with UsingMysql(log_time=True) as um:
        um._cursor.execute('select count(id) as total from boss')
        data = um._cursor.fetchone()  # 2
        print("当前记录数量:%d" % data['total'])

预期结果:

在这里插入图片描述

参考文章:https://blog.csdn.net/BJ1599449/article/details/117026500

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

打包的意义 作用等前端概念集合 webpack基础配置等

基础网页是什么&#xff1f; 在学校最基础的三剑客 原生JS CSS H5就可以开发静态网页了 对于浏览器而言也能识别这些基础的文件和语法&#xff0c;真正的所见即所得&#xff0c;非常直接。 为什么要使用框架库&#xff1f; 对于常用的前端框架而言&#xff0c;无论是Vue Rea…

什么样的内外网文档摆渡,可以实现安全高效传输?

内外网文档摆渡通常指的是在内网&#xff08;公司或组织的内部网络&#xff09;和外网&#xff08;如互联网&#xff09;之间安全地传输文件的过程。这个过程需要特别注意安全性&#xff0c;因为内网往往包含敏感数据&#xff0c;直接连接内网和外网可能会带来安全风险。因此会…

为什么深度学习模型在 GPU 上运行得更快:CUDA 编程简介

如今,当我们谈论深度学习时,通常会将其实现与利用 GPU 来提高性能联系起来。 GPU(图形处理单元)最初设计用于加速图像、2D 和 3D 图形的渲染。然而,由于它们能够执行许多并行操作,因此它们的实用性超出了深度学习等应用程序。 GPU 在深度学习模型中的使用始于 2000 年代…

保姆级银河麒麟V10高级服务器离线安装mysql5.7数据库

离线在银河麒麟高级操作系统v10安装mysql5.7 下载mysql5.7 MySQL :: Download MySQL Community Server (Archived Versions) 2、把下载好的包上传到服务器 3、解压 [root1-0001 ~]# cd /data/mysql[root1-0001 mysql]# tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz…

Beego框架学习:深入指南

文章目录 Beego框架学习&#xff1a;深入指南安装与设置创建控制器自定义路由使用中间件使用模板引擎使用ORM Beego框架学习&#xff1a;深入指南 Beego是一个快速开发Go语言应用的开源框架&#xff0c;它基于MVC模式设计&#xff0c;提供了一系列的工具和库&#xff0c;使得开…

C++ 之 string类的模拟实现

这学习我有三不学 昨天不学&#xff0c;因为昨天是个过去 明天不学&#xff0c;因为明天还是个未知数 今天不学&#xff0c;因为我们要活在当下&#xff0c;我就是玩嘿嘿~ –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–…

Docker基础学习(3.Docker架构)

⭐ 作者简介&#xff1a;码上言 ⭐ 代表教程&#xff1a;Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容&#xff1a;个人博客系统 ⭐我的文档网站&#xff1a;http://xyhwh-nav.cn/ ⭐微信公众号&#xff1a;码上言 文章目录 Docker基本概念1、镜像&…

JavaWeb-自学JSP组件报告

自学JSP组件报告 一、组件资源及作用 1. commons-fileupload-1.2.2.jar 组件作用&#xff1a;用于处理HTTP文件上传请求&#xff0c;提供了文件上传的解析和存储功能。它允许开发者在Web应用中轻松实现文件上传功能。 2. commons-io-2.4.jar 组件作用&#xff1a;提供了一…

springboot+vue新疆肉牛智慧牧场养殖系统

系统涉及的对象是奶牛。 系统使用员工有管理员和普通员工。 管理员有修改的权限&#xff0c;普通员工没有。 系统需要包含奶牛的编号&#xff0c;种类&#xff0c;体重&#xff0c;健康情况、生长情况、牛奶产量&#xff0c;以及上次更新数据时间等信息&#xff0c;管理员可以对…

Perfect Clear WorkBench 智能修图黑科技,你尽管拍剩下的交给我(v4.6.0.2653)

01 Perfect Clear Perfect Clear WorkBench是EyeQlmaging推出的先进图片处理工具&#xff0c;旨在自动优化和简化图像校正。它通过智能技术提高图片的清晰度、颜色保真度&#xff0c;并增强视觉效果&#xff0c;确保高品质输出。 它的核心优势是利用高级算法和AI技术&#xff…

第59篇:创建Nios II工程之控制LED<一>

Q&#xff1a;还记得第1篇吗&#xff1f;设计简单的逻辑电路&#xff0c;控制DE2-115开发板上LED的亮与熄灭&#xff0c;一行Verilog HDL的assign赋值语句即可实现。本期开始创建Nios II工程&#xff0c;用C语言代码控制DE2-115开发板上的LED实现流水灯效果。 A&#xff1a;在…

win下安装desktop及使用desktop安装k8s

1、下载desktop安装包 Docker Desktop: The #1 Containerization Tool for Developers | Docker 2、点击exe文件进行安装 3、安装完需要在启用或关闭windows功能中勾选如下三个选项 4、在desktop中配置Docker Engine { "registry-mirrors": [ "https:/…

Linux创建YUM仓库

在rhel-8.5中的/mnt/目录下是有AppStream和BaseOS这两个软件包的&#xff0c;里面有可安装的一些软件。 /mnt/BaseOS/Packages/ 普通安装 1.使用rpm命令安装&#xff08;rpm -i 程序名称&#xff09; 查看&#xff0c;已经有了这个程序&#xff08;rpm -qa | grep 程序名&…

Footprint Analytics 与 GalaChain 达成战略合作

​ Footprint Analytics 宣布与 GalaChain 达成战略合作。GalaChain 是 Gala 旗下的 Layer 1 区块链。此次合作标志着双方在游戏&#xff08;包括 Gala Games) 、娱乐和金融等多个行业的区块链生态系统革新方面迈出了重要的一步。 GalaChain 致力于满足企业级项目的广泛需求&…

【电路笔记】-Colpitts振荡器

Colpitts振荡器 文章目录 Colpitts振荡器1、概述2、基本Colpitts 振荡器电路3、示例14、使用运算放大器的Colpitts振荡器5、总结Colpitts 振荡器设计使用两个中心抽头电容器与并联电感器串联,形成产生正弦振荡的谐振储能电路。 1、概述 在许多方面,Colpitts 振荡器与我们在上…

GO语言写Prometheus自定义node-exporter的Docker容器测试

1. 安装docker-compose 执行以下命令&#xff0c;安装docker-compose到CentOS7.9环境中&#xff1a; # 下载二进制文件 sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/d…

不懂就问!现货黄金和实物黄金如何选择?

近期金价大涨&#xff0c;很多投资者就将资金从股票等其他投资品种抽调出来&#xff0c;而投入到黄金市场中。然而&#xff0c;整个黄金投资市场中拥有这么多不同的黄金投资品种&#xff0c;像现货黄金和实物黄金&#xff0c;投资者根本不知道该选哪种&#xff0c;下面我们就来…

[数据结构]——排序——插入排序

目录 ​编辑 1 .插入排序 1.基本思想&#xff1a; 2.直接插入排序&#xff1a; ​编辑 1.代码实现 2.直接插入排序的特性总结&#xff1a; 3.希尔排序( 缩小增量排序 ) 1.预排序 2.预排序代码 3.希尔排序代码 4.希尔排序的特性总结&#xff1a; 1 .插入排序 1.基本思…

2023年全国消费金融财务数据挖掘-投资回报率最高的竟是!

作者Toby&#xff0c;来源公众号Python风控模型&#xff0c;2023年全国消费金融财务统计 大家好&#xff0c;Toby老师汇总了2023年全国消费金融财务数据。这份数据可以用来分析各个消费金融公司在2023年的财务表现&#xff0c;包括资产状况、营业收入、净利润以及投资回报率等…

鸿蒙APP开发页面组件之间的属性关系

我们将对于多页面以及更多有趣的功能展开叙述&#xff0c;这次我们对于 HarmonyOS 的很多有趣常用组件并引出一些其他概念以及解决方案、页面跳转传值、生命周期、启动模式&#xff08;UiAbility&#xff09;&#xff0c;样式的书写、状态管理以及动画等方面进行探讨 页面之间…
最新文章