Python与MySQL交互
第四章 Python与MySQL交互
1、客户端库概述及安装
PyMySQL介绍
PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个客户端库。
PyMySQL安装:
pip install pymysql
执行过程如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f1pNcLFJ-1670082096208)(images\7_4_1.png)]
检查是否安装成功:
方法一:在python交互模式运行 import pymysql,如果不报错,说明PyMySQL模块已安装成功,如下图所示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QgUieFro-1670082096210)(images\7_4_2.png)]
方法二:在命令行输入pip list,可以查看已安装的工具包,如下图,可以看到列表里有PyMySQL,说明我们已经安装了PyMySQL
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKcoZu8O-1670082096211)(F:\python最新就业班\资料编写\第七阶段\images\7_4_11.png)]
方法三:在命令行输入pip show pymysql,如果显示了PyMySQL的信息,说明已经安装了PyMySQL
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KysDYMnU-1670082096213)(images\7_4_12.png)]
2、Python操作MySQL步骤
在pymysql中提供了Connection和Cursor对象来管理操作MySQL。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6l5wrB2p-1670082096213)(images\7_4_3.png)]
2.1 引入PyMySQL包
在.py文件中引入pymysql模块
from pymysql import *
2.2 Connection 对象
代表一个与MySQL Server的socket连接,使用connect方法来创建一个连接实例。
创建对象,调用connect()方法:
conn = connect(参数列表)
参数host:连接的mysql主机,如果本机是’localhost’
参数port:连接的mysql主机的端口,默认是3306
参数database(db):数据库的名称
参数user:连接的用户名
参数password(passwd):连接的密码
参数charset:通信采用的编码方式,推荐使用utf8
Connection对象常用的API:
API | 说明 |
---|---|
connect() | 创建一个数据库连接实例 |
close() | 发送一个退出消息,并关闭连接 |
commit() | 提交修改至数据库 |
cursor() | 创建一个cursor(游标)实例 |
ping() | 检测服务器是否在运行 |
rollback() | 回滚当前事务 |
select_db(db) | 设置当前db |
show_warnings() | 显示警告信息 |
2.3 Cursor对象
代表一个与MySQL数据库交互对象,使用Connection.Cursor()在当前socket连接上的交互对象。
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理
通俗来说就是,操作数据和获取数据库结果都要通过游标来操作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DhRAhuie-1670082096214)(images\7_4_4.jpg)]
Cursor对象常用API:·
API | 说明 |
---|---|
close() | 关闭当前cursor |
execute() | 执行一个sql语句 |
executemany() | 执行批量sql语句 |
fetchall() | 取所有数据 |
fetchmany() | 取多条数据,指定取数据条数 |
fetchone() | 取一条数据 |
2.4 Python操作MySQL步骤代码
#1 导入pymysql库
from pymysql import *#2 创建数据库连接
conn = Connect(host='localhost',port=3306,user='root',password='root',db='mytestdb',charset='utf8')print(conn)#3 创建游标
cur = conn.cursor()#4 执行sql语句和数据处理
pass#5 关闭游标
cur.close()#6 关闭连接
conn.close()
执行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7sTtCVS-1670082096215)(images\7_4_4.png)]
看到以上运行结果,说明Connection对象创建成功,数据库已经连接成功!
3、增删改查语句的执行
3.1 sql注入与sql语句参数化
什么是sql注入
用户提交带有恶意的数据与SQL语句进行字符串方式的拼接,从而影响了SQL语句的语义,最终产生数据泄露或数据的篡改的现象。
如何防止sql注入-sql语句参数化
参数化查询是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值,这个方法目前已被视为最有效可预防SQL注入攻击的防御方式。
#1 导入pymysql包
from pymysql import *#2 创建数据连接
conn = connect(host='localhost',port=3306,user='root',password='root',db='mytestdb',charset='utf8')#3 打开游标
cur = conn.cursor()#4 执行sql语句和数据处理
sname = input('请输入用户名:')
passwd = input('请输入密码:')
#有sql注入漏洞的sql语句
#sql = "select * from t_student where sname='%s' and passwd='%s'"%(sname,passwd)
#print(sql)
#select * from t_student where sname='test' or 1=1 #' and passwd='dsafdsa'
#为防止sql注入,我们对sql语句进行参数化
sql = "select * from t_student where sname=%s and passwd=%s"
params = (sname,passwd)rowcount = cur.execute(sql,params)if rowcount != 0:print("登录成功!")
else:print("登录失败!")#5 关闭游标
cur.close()#6 关闭连接
conn.close()
3.2 增加数据
3.2.1 增加单条数据
#1 导入pymsql包
from pymysql import *#2 创建数据库连接
conn = connect(host='localhost',port=3306,user='root',password='root',db='mytestdb',charset='utf8')#3 打开游标
cur = conn.cursor()#4 执行 sql语句
#编写sql语句
try:sql = "insert into t_student values (%s,%s,%s,%s,%s,%s,%s,%s)"params = (7,"肖小军","123456",'男',21,"2020-07-15","大数据班","123456@126.com")#执行sql语句cur.execute(sql,params)conn.commit()
except:conn.rollback()print("数据增加成功!")
#5 关闭游标
cur.close()#6 关闭连接
conn.close()
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9Mr0vqE-1670082096216)(images\7_4_5.png)]
3.2.2 增加多条数据
# 教育机构:马士兵教育
# 讲 师:张祖春#1 导入pymsql包
from pymysql import *#2 创建数据库连接
conn = connect(host='localhost',port=3306,user='root',password='root',db='mytestdb',charset='utf8')#3 打开游标
cur = conn.cursor()#4 执行 sql语句
#编写sql语句
try:sql = "insert into t_student values (%s,%s,%s,%s,%s,%s,%s,%s)"params = [(7,"王辉1","123456",'男',24,"2020-09-15","Python全栈班","123456@126.com"),(7, "王辉2", "123456", '男', 24, "2020-09-15", "Python全栈班", "123456@126.com"),(7, "王辉3", "123456", '男', 24, "2020-09-15", "Python全栈班", "123456@126.com")]#执行sql语句cur.executemany(sql,params)conn.commit()
except:conn.rollback()print("数据增加成功!")
#5 关闭游标
cur.close()#6 关闭连接
conn.close()
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-av7euMus-1670082096217)(images\7_4_10.png)]
3.3 删除数据
#1 导入pymsql包
from pymysql import *#2 创建数据库连接
conn = connect(host='localhost',port=3306,user='root',password='root',db='mytestdb',charset='utf8')
print(conn)
#3 打开游标
cur = conn.cursor()#4 执行 sql语句
#编写sql语句
try:sql = "delete from t_student where sno=%s"params = (7)#执行sql语句rowcount = cur.execute(sql,params)conn.commit()
except:conn.rollback()print("已删除"+str(rowcount)+"条数据!")
#5 关闭游标
cur.close()#6 关闭连接
conn.close()
执行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GcEpctsx-1670082096218)(images\7_4_6.png)]
3.4 修改数据
#1 导入pymsql包
from pymysql import *#2 创建数据库连接
conn = connect(host='localhost',port=3306,user='root',password='root',db='mytestdb',charset='utf8')
print(conn)
#3 打开游标
cur = conn.cursor()#4 执行 sql语句
#编写sql语句
try:# 删除和修改操作一定要限定条件,不然将影响其他数据,甚至误删或修改整个数据库sql = "update t_student set sname=%s where sno=%s"params = ('李敏',8)#执行sql语句rowcount = cur.execute(sql,params)conn.commit()
except:conn.rollback()print("已修改"+str(rowcount)+"条数据!")
#5 关闭游标
cur.close()#6 关闭连接
conn.close()
执行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CAHFWkKO-1670082096219)(images\7_4_7.png)]
3.5 查询数据
#1 导入pymsql包
from pymysql import *#2 创建数据库连接
conn = connect(host='localhost',port=3306,user='root',password='root',db='mytestdb',charset='utf8')#3 打开游标
cur = conn.cursor()#4 执行 sql语句
#编写sql语句
# 查询数据时,为了节约内存,不要用*,而应该指定具体要取的字段,另外要指定查询条件
sql = "select sno,sname,sex,age,classname from t_student where age>%s"
params = (20)
#执行sql语句
cur.execute(sql,params)# result=cur.fetchone() #取一条数据
# print(result)#result=cur.fetchmany(3) #取指定多条数据
result=cur.fetchall() #取所有数据
#打印输出执行结果
for row in result:print(row)#5 关闭游标
cur.close()#6 关闭连接
conn.close()
4、数据库操作封装
观察前面的文件发现,除了sql语句及参数不同,其它语句都是一样的
这样造成了很多重复代码,我们可以把数据库常用操作封装为一个类,以便代码可以重复使用
创建MysqlHelper.py文件,定义类
from pymysql import *class MysqlHelper(object):#数据库连接参数,可以定义多个,比如conn_params1,conn_params2,用于连接多个数据库,在类实例化时指定conn_params1 = {'host': 'localhost', 'port': 3306, 'user': 'root', 'passwd': 'root', 'db': 'mytestdb','charset': 'utf8'}#类的构造函数,主要用于类的初始化def __init__(self, conn_params):self.__host = conn_params['host']self.__port = conn_params['port']self.__db = conn_params['db']self.__user = conn_params['user']self.__passwd = conn_params['passwd']self.__charset = conn_params['charset']#建立数据库连接和打开游标def __connect(self):self.__conn = connect(host=self.__host, port=self.__port, db=self.__db, user=self.__user, passwd=self.__passwd,charset=self.__charset)self.__cursor = self.__conn.cursor()#关闭游标和关闭连接def __close(self):self.__cursor.close()self.__conn.close()#取一条数据def get_one(self, sql, params):result = Nonetry:self.__connect()self.__cursor.execute(sql, params)result = self.__cursor.fetchone()self.__close()except Exception as e:print(e)return result#取所有数据def get_all(self, sql, params):lst = ()try:self.__connect()self.__cursor.execute(sql, params)lst = self.__cursor.fetchall()self.__close()except Exception as e:print(e)return lst#增加数据def insert(self, sql, params):return self.__edit(sql, params)#修改数据def update(self, sql, params):return self.__edit(sql, params)#删除数据def delete(self, sql, params):return self.__edit(sql, params)#写数据操作具体实现,增删改操作都是调用这个方法来实现,这是个私有方法,不允许类外部调用def __edit(self, sql, params):count = 0try:self.__connect()count = self.__cursor.execute(sql, params)self.__conn.commit()self.__close()except Exception as e:print(e)return count
MysqlHelper类的调用
from MysqlHelper import *# 数据库查询
'''
mysqlhelper = MysqlHelper(MysqlHelper.conn_params1)
sql = "select sno,sname,sex,age,classname from t_student where age>%s"
params = (20)
result = mysqlhelper.get_all(sql, params)# 打印输出执行结果
for row in result:print(row)'''#增加数据
'''
mysqlhelper = MysqlHelper(MysqlHelper.conn_params1)
sql = "insert into t_student values (%s,%s,%s,%s,%s,%s,%s,%s)"
params = (11,"王五","123456",'男',24,"2020-09-15","python全栈班","123456@126.com")
rowcount = mysqlhelper.insert(sql, params)
print("已增加"+str(rowcount)+"条数据")'''#删除数据
'''
mysqlhelper = MysqlHelper(MysqlHelper.conn_params1)
sql = "delete from t_student where sno=%s"
params = (11)
rowcount = mysqlhelper.delete(sql, params)
print("已删除"+str(rowcount)+"条数据")'''#修改数据
'''
mysqlhelper = MysqlHelper(MysqlHelper.conn_params1)
sql = "update t_student set classname=%s where sno=%s"
params = ('大数据班',9)
rowcount = mysqlhelper.update(sql, params)
print("已修改"+str(rowcount)+"条数据")'''
相关文章:
力扣-419. 甲板上的战舰
1.题目 题目地址(419. 甲板上的战舰 - 力扣(LeetCode)) https://leetcode.cn/problems/battleships-in-a-board/ 题目描述 给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 X 或者是一个空位 . ,返回在甲板 board 上放置的 战舰 的数量。 战舰…...
「洛谷」题解:P1008 三连击
题目传送门 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。 题目描述 将 \(1, 2, \ldots , 9\) 共 \(9\) 个数分成 \(3\) 组,分别组成 \(3\) 个三位数,且使这 \(3\) 个三位数构成 \(1 : 2 : 3\) 的比例,试求出…...
VScode 里面使用 python 去直接调用 CUDA
上一个 帖子主要分享了如何 去将 C 程序 打包成一个package。 我们最后的 目的实际上是想把 CUDA 的程序 打包成 一个 Package , C 程序只是起到了桥梁的作用: 首先:CUDA 程序 和 C 的程序一样, 都有一个 .cu 的源文件和 一个 .…...
WindowsPE重装Windows系统详细介绍
本文详细介绍了WindowsPE、UEFI BIOS、如何制作WindowsPE、网络唤醒WOL、如何格式化硬盘及分区 、GHost还原数据、驱动程序分类相关知识目录目录理论知识 什么是WindowsPE? 什么是UEFI BIOS?(简)实操 如何制作WindowsPE? 如何进入BIOS? 常用项介绍 设置U盘启动 网络…...
notepad++ 安装compare文件对比插件失败解决办法
1.首先notepad++ 安装compare方法: 在菜单栏点击“插件”》插件管理 搜索:compare 点击YES 因为国内网络原因,可能会安装失败,也可能安装比较久。 2.自己解压安装:下载解压包: 链接:https://pan.baidu.com/s/1B8hZJCJ8PLZgwdYzQeWGpQ提取码:7n2s点击打开插件目录: 目…...
Linux网络设置
一、网络相关设置内容 将Linux主机接入到网络,需要配置网络相关设置,包括以下内容 1.主机名 2.IP/netmask 3.路由:默认网关 4.DNS服务器,主DNS服务器,次DNS服务器,第三个DNS服务器 centos的网卡配置位…...
Python与MySQL交互
第四章 Python与MySQL交互 1、客户端库概述及安装 PyMySQL介绍 PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个客户端库。 PyMySQL安装: pip install pymysql执行过程如下图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来…...
list的模拟实现(万字解读+由浅入深)
先申明一下本篇总体介绍过程是按照逐步深入去写的,所以可能有些同样类型不在一块! 前言: 写这篇博客的时候,我是边思考边写它!自己其中感觉自己对于list的理解更加的深入,其中提出的很多问题让我明白了lis…...
Java项目:SSM CRM人事管理系统
作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 CRM人事管理系统,主要功能有: 用户管理:用户查询、添加用户、编辑、删除; 职位管理:…...
Qt+opencv 鼠标画线实现几何图形识别并动态创建
前言 使用Qt OpenCV实现,通过鼠标画线绘制几何图形,然后通过opencv进行图形轮廓识别,返回图形顶点,然后创建对应的几何图形添加到场景中。绘制使用QGraphics体系完成。 看效果图: 本文demo在这里 点击下载 环境: …...
HTML5期末大作业——HTML+CSS+JavaScript平遥古城旅游景点介绍(6页)
👨🎓学生HTML静态网页基础水平制作👩🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…...
HTML5期末考核大作业 基于HTML+CSS+JavaScript沪上美食(9页)
🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…...
Reg注册表读写
在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理…...
HTML入门零基础教程(五)
嗨,大家好,我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助,请支持一波。 希望未来可以一起学习交流。 目录 一、图像标签 1.图像标签 2.图标标签的其它属性 3.图像标签属性注意点: 一、图像标签 1.…...
java通过lock实现同步锁
这里我们是一个卖票的演示代码 其实 同步锁 远不止一个synchronized 它本身有一个 加上锁 和释放锁的过程 为了 让我们更好的理解这个过程 JDK5之后 为我们提供了一个单独的锁工具 lock lock是一个接口 他提供了 synchronized 方法 和 更广泛的语句操作 lock方法 获得锁 unl…...
Java多线程同步工具类:Semaphore原理剖析
Java多线程同步工具类:Semaphore原理剖析 文章目录Java多线程同步工具类:Semaphore原理剖析Semaphore原理实战案例前驱知识准备:AbstractQueuedSynchronizer队列同步器 [Java多线程之:队列同步器AbstractQueuedSynchronizer原理剖…...
C++之面向对象
目录 对象与类 类的语法: C中class与struct的区别: 通过类实例化对象的方式 具体案例 类作用域与分文件编写 创建circle.h头文件 创建源文件circle.cpp 创建all.cpp来作为程序的入口 封装 封装的意义 访问权限符 成员属性私有化 优点 具体…...
Windows-》CMD命令
CMD命令【1】Windows-》CMD命令1.mstsc:打开远程桌面连接。2.services.msc:打开本地服务设置。3.notepad:打开记事本。4.control:打开控制面板。5.regedit:打开注册列表编辑器。6.compmgmt.msc---设备管理器。…...
秒级使网站变灰,不改代码不上线,如何做到?
注意:文本不是讲如何将网站置灰的那个技术点,那个技术点之前汶川地震的时候说过。 本文不讲如何实现技术,而是讲如何在第一时间知道消息后,更快速的实现这个置灰需求的上线。 实现需求不是乐趣,指挥别人去实现需求才…...
vue教程
vue window本地保存Local Storage 保存:window.localStorage.setItem(名,值); window.localStorage.setItem(token,backdata.data[2]); 查询:window.localStorage.getItem(名); window.localStorage.getItem(token); 删除:window.localStor…...
认识哈希表
作者:~小明学编程 文章专栏:Java数据结构 格言:目之所及皆为回忆,心之所想皆为过往 目录 为什么我们需要哈希表? 哈希表的原理 什么是哈希值 冲突 负载因子 解决冲突 闭散列 开散列/哈希桶 代码实现 不考虑…...
Vue学习:Hello小案例
使用Vue的目的:构建用户界面(需要使用容器 摆放这个界面的内容) favicon.ico:1 GET http://127.0.0.1:5500/favicon.ico 404 (Not Found) 没有页签图标 在者服务器中 http://127.0.0.1:5500没有/favicon.ico 强制刷新网页:s…...
IDEA创建Java Web项目
✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者…...
C++11中可变参数模板使用
在看同事编写的代码,发现有如下的代码,因为没用过,所以查了一下这是什么语法,通过查询资料知道了这是C11中增加的可变参数模板。 template<class T, class ...Args> bool GetValue(T &value, Args &&...args) c…...
MySQL 中的 sql_mode 选项以及配置
MySQL 中的 sql_mode 选项以及配置 目录MySQL 中的 sql_mode 选项以及配置一、查询与设置 sql_mode1、查询 sql_mode2、设置 sql_mode(1)通过命令设置(2)在配置文件中设置二、sql_mode 支持的模式1、ANSI 模式(宽松模式…...
【C语言航路】第六站:指针初阶
目录 一、指针是什么 二、指针和指针类型 1.指针类型的意义 2.指针-整数 3.指针解引用 三、野指针 1.野指针的成因 (1)指针未初始化 (2)指针越界访问 (3)指针指向的空间释放 2.如何规避野指针 &a…...
从 JPA 2.x 迁移到 3.0
我最近收到了很多关于JPA 3.0的问题,由于EclipseLink和Hibernate现在提供了对它的全面支持,现在是时候仔细看看规范的最新更新了。作为从Java EE到Jakarta EE转换的一部分,Java Persistence API(JPA)更名为Jakarta Per…...
Allegro如何锁定器件操作指导
Allegro如何锁定器件操作指导 Allegro上可以锁定器件,避免误操作被移动,具体操作如下 选择fix命令 Find选择Symbols 框选需要锁定的器件 可以看到器件被锁住了 除了这个方法之外,还有另外一种方法锁定器件,选择edit-property Find选择Symbols...
第三章:SpringBoot的配置文件-核心技术
目录 1、文件类型 1.1、properties 1.2、yaml 1.2.1、简介 1.2.2、基本语法 1.2.3、数据类型 1.2.4、示例 2、配置提示 1、文件类型 1.1、properties 同以前的properties用法 1.2、yaml 1.2.1、简介 YAML 是 "YAML Aint Markup Language"(YA…...
Vue中的计算属性
计算属性:实际上是把vm中的属性进行计算加工,最后能够返回给页面一个结果,它是实时的,所以不能做异步操作。 细想一下,其实methods方法也能实现1中描述的现象,但是计算属性最大的优势是缓存!&a…...
HTML+CSS个人电影网页设计——电影从你的全世界路过(4页)带音乐特效
HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…...
业务开发时,接口不能对外暴露的解决方案
1.内外网接口微服务隔离 将对外暴露的接口和对内暴露的接口分别放到两个微服务上,一个服务里所有的接口均对外暴露,另一个服务的接口只能内网服务间调用。 该方案需要额外编写一个只对内部暴露接口的微服务,将所有只能对内暴露的业务接口聚合到这个微服务里,通过这个聚合…...
「点燃我,温暖你」用Python制作一个动态爱心效果
最近「点燃我,温暖你」这部剧非常火,讲述的是程序员的爱情故事。 其中陈飞宇饰演的男主李峋,在剧中用程序做出的爱心跳动效果,非常炫。 网上各个大佬也是纷纷给出看法,综合就是不太可能用C语言来实现的。 大概率是AE…...
初识猿如意开发工具
嗨,大家好,我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助,请支持一波。 希望未来可以一起学习交流。 一、初遇猿如意 第一次听说猿如意开发工具,于是抱着试试的心态,开始下载尝试。 首先是…...
PyTorch 2.0发布了,一行代码提速76%
PyTorch 官方:我们这次的新特性太好用了,所以就直接叫 2.0 了。 前段时间,PyTorch 团队在官方博客宣布 Pytorch 1.13 发布,包含 BetterTransformer 稳定版等多项更新。在体验新特性的同时,不少人也在期待下一个版本的推…...
栈的基本操作
一,自定义函数 #include<bits/stdc.h> using namespace std; const int N 1000;//N是常量 int s[N 1];//栈 int top;//栈顶的位置(栈内有多少个元素) //入栈 void push(int x){ //非满栈 if(top < N){ //将栈顶上移并存入 top…...
windows内核编程-文件操作
文章目录前言背景知识点介绍字符串内存分配与回收文件操作自旋锁win内核编程-日志实现文件操作的封装日志功能的实现简单的测试日志功能其他前言 本文完整代码见:demo/12-win-driver-log 我们必须先搞定,DebugView可以看到DbgPrintDbgPrint的输出。否则…...
Hadoop原理与技术——Linus命令行基本操作
点击链接查看文档 一、实验目的 Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作,为顺利开展后续其他实验奠定基础。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 J…...
目标检测算法——YOLOv5/YOLOv7改进之结合特征提取网络RFBNet(涨点明显)
>>>深度学习Tricks,第一时间送达<<< 🚀🚀🚀NEW!!!魔改YOLOv5/v7目标检测算法来啦 ~ 计算机视觉——致力于目标检测领域科研Tricks改进与推荐 | 主要包括Backbone、Neck、Head、普通注意力机制、自注意力机制Transformer、Swin Transformer v2,各…...
anaconda使用系列教程--4)环境迁移
概述 跨平台尽量避免,比如windows和linux就不要跨平台,就在linux之间跨还是可以的 直接copy整体环境文件,适合于无法联网或网速不佳的新环境 anaconda最好是同版本的 迁移方法 使用requirement文件 A机器: pip freeze > …...
Kotlin高仿微信-第57篇-VIP管理列表
Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…...
贪心算法-- 纪念品分组
问题描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值 相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给…...
java-php-net-python-代驾网站计算机毕业设计程序
java-php-net-python-代驾网站计算机毕业设计程序 java-php-net-python-代驾网站计算机毕业设计程序本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui、HTML、CSS、JS、JQ…...
简洁自增ID实现方案
简介 从数据库性能角度考虑,我们经常需要数字型的自增主键,有时候我们并不想用像MySQL自带的自增,因为从1开始很数据位数不一样,对有点强迫症的人来说,不是很友好。 另外,别人也容易根据这种从1开始的自增…...
JMeter入门教程(14)——场景设计
1.JMeter中场景设计是通过线程组来实现的 如图: 控制面板中各元素介绍: 名称:可以随意设置,最好有业务意义。 注释:可以随意设置,可以为空。 在取样器错误后要执行的动作:其中的某一个请求出错后…...
SVM 用于将数据分类为两分类或多分类(Matlab代码实现)
👨🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…...
转行软件测试我后悔了
很多时候,都在想当初做的转行软件测试行业的决定是对的吗?现在后悔还来得及吗? 记得在求职的时候,面试官经常问我:“为什么要选择软件测试工作?” 而我也会经常说一堆自己有的没的优势去应付。 工作这么久了&#x…...
k8s教程(15)-pod之亲和性与互斥性调度
文章目录01 引言02 pod亲和性调度与互斥性调度2.1 拓扑域2.2 举例2.2.1 参照目标pod2.2.2 pod的亲和性调度2.2.3 pod的互斥性调度03 其它04 文末01 引言 声明:本文为《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》…...
浅谈降维实操,一种用于处理特征的方式——后附Python代码
👦👦一个帅气的boy,你可以叫我Love And Program 🖱 ⌨个人主页:Love And Program的个人主页 💖💖如果对你有帮助的话希望三连💨💨支持一下博主 降维实操前言线性降维低…...
深度学习中的正则化——L1、L2 和 Dropout
正则化是一组技术,可以防止神经网络中的过度拟合,从而在面对来自问题域的全新数据时提高深度学习模型的准确性。 在本文中,我们将介绍最流行的正则化技术,称为 L1、L2 和 dropout。 文章目录1. 回顾:过拟合2.什么是正则…...
数据结构(王卓)(4)附:链表的销毁与清空
销毁 Status 销毁单链表(LinkList L) {LinkList p;while (L){p L;L->next;delete p;}return OK; } 运行逻辑: (1):设定一个指针,让指针指向链表的头指针L (2):让头指针等于头指针里面指向下…...
C++图书管理系统(管理员-读者)
C图书管理系统(管理员-读者) 一、设计一款文字式交互的图书管理系统,要求具备注册登录、浏览图书、借还图书等基本功能; 二、要求以外部文件的形式存储书籍信息、馆藏记录、借阅记录、用户信息等。【可参考提供的书籍清单】 三…...
永磁同步电机恒压频比(V/F)开环控制系统Matlab/Simulink仿真分析及代码生成到工程实现
文章目录前言一、 恒压频比(V/F)控制原理二、永磁同步电机恒压频比开环控制系统Matlab/Simulink仿真分析2.1.仿真电路分析2.1.1.恒压频比控制算法2.1.2.输出处理2.1.3.主电路2.2.仿真结果分析2.2.1.设定目标转速为1200r/min2.2.1.设定目标转速为变化值三…...
基于JSP网上书城的设计与实现
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…...
java计算机毕业设计-学生宿舍故障报修管理信息系统-源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计-学生宿舍故障报修管理信息系统-源程序mysql系统lw文档远程调试 java计算机毕业设计-学生宿舍故障报修管理信息系统-源程序mysql系统lw文档远程调试本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件…...
vue学习笔记——简单入门总结(四)
文章目录1.Vue3的特性和变化1.1.创建vue3项目1.2.分析main.js变化:1.3.setup--组合式api的开端1.4.ref函数和reactive函数:1.5.watch监视属性1.5.watchEffect函数1.6.vue3生命周期:1.Vue3的特性和变化 1.1.创建vue3项目 1.这里我们使用脚手架…...
关于OSPF报文学习
目录 一.OSPF学习补充 (1)OSPF报文头部 (2)ospf建立邻居关系 1.Hello报文——建立邻居关系 2.hello报文头部 (3)OSPF建立邻接关系 1.发送DD报文 2.DD报文头部 (4)关于DR,BD…...
ubuntu22 部署fastDFS单节点和集群,整合Spring Boot(刚部署成功)
ubuntu22 部署fastDFS单节点和集群 一、先准备1、所需依赖安装2、下载安装包 二、安装FastDFS单节点1、libfastcommon安装1.1、创建软连接 2、安装fastDFS2.1、fastDFS目录简单介绍2.2、创建软连接 3、配置和启动Tracker服务3.1、修改Tracker配置文件3.2、启动Tracker 4、配置和…...
美业共享模式-股东裂变-2024爆火模式!免费试用!
美业共享股东模式,线上新零售系统工具,股权设计 坐标:厦门,我是肖琳 深耕社交新零售行业10年,主要提供新零售系统工具及顶层商业模式设计、全案策划运营陪跑等。 在美业门店经营中,我们常常面临一个挑战…...
ChatGPT如何助力科研创新,提升研究效率?
随着人工智能技术的快速发展,其在科研领域的应用也愈发广泛。AI不仅提升了科研创新的效率,还为科研人员带来了前所未有的便利。本文将从ChatGPT深度科研应用、数据分析及机器学习、AI绘图以及高效论文撰写等方面,综述AI如何助力科研创新与效率…...
Python绘制3D曲面图
👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 探索Python中绘制3D曲面图的艺术 在数据可视化的世界中,3D曲面图是一种强大的工…...
树莓派学习笔记--串口通信(配置硬件串口进行通信)
树莓派串口知识点 树莓派4b的外设一共包含两个串口:硬件串口(/dev/ttyAMA0),mini串口(/dev/ttyS0) 硬件串口由硬件实现,有单独的波特率时钟源,性能高,可靠;而mini串口性能…...