当前位置: 首页 > article >正文

【Python爬虫(21)】从0到1:Python与MySQL的深度融合

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发者,都能从中汲取知识,助力掌握爬虫核心技能,开拓技术视野。

目录

  • 一、MySQL:数据库世界的基石
  • 二、MySQL 的安装与配置
    • 2.1 下载 MySQL
    • 2.2 安装步骤详解
    • 2.3 环境变量配置
    • 2.4 初始化与启动
    • 2.5 登录与密码设置
  • 三、Python 与 MySQL 的桥梁:pymysql 库
    • 3.1 安装 pymysql
    • 3.2 连接 MySQL 数据库
    • 3.3 连接异常处理
  • 四、SQL 语句的 Python 实践
    • 4.1 数据插入
    • 4.2 数据查询
    • 4.3 数据更新
    • 4.4 数据删除
  • 五、总结与展望


一、MySQL:数据库世界的基石

在当今数字化时代,数据如同企业的血液,支撑着业务的运转和决策的制定。而 MySQL,作为一款开源的关系型数据库管理系统,凭借其卓越的性能、可靠性和易用性,在数据库领域占据着举足轻重的地位。从中小型企业的业务系统到大型互联网公司的核心架构,MySQL 的身影无处不在,广泛应用于 Web 开发、电子商务、数据仓库、物联网等多个领域。

以 Web 开发为例,LAMP(Linux、Apache、MySQL、PHP/Perl/Python)架构是最常见的 Web 开发组合之一,其中 MySQL 作为数据库管理系统,负责存储和管理 Web 应用的数据。无论是内容管理系统(CMS)如 WordPress、Joomla,还是电子商务平台如 Magento、WooCommerce,都依赖 MySQL 来高效地处理用户数据、商品信息、订单记录等关键数据。在物联网领域,MySQL 能够存储和管理来自各种设备的大量数据,为物联网应用提供稳定的数据支持。

接下来,我们将一步步深入了解如何在本地环境中安装和配置 MySQL 数据库,为后续使用 Python 进行数据存储和操作打下坚实的基础。

二、MySQL 的安装与配置

2.1 下载 MySQL

MySQL 官方提供了丰富的下载资源,你可以通过访问MySQL 官方下载页面获取最新版本的 MySQL 安装包。在下载页面,你会看到针对不同操作系统和使用场景的多个版本选项。

对于 Windows 系统,通常提供了 MSI(安装包)和 ZIP(免安装压缩包)两种形式。MSI 安装包适合初学者,它提供了图形化的安装向导,安装过程相对简单;ZIP 压缩包则更适合有一定经验的用户,需要手动进行一些配置,但灵活性更高。如果你的系统是 Windows,且希望安装过程更加便捷,建议选择 MSI 安装包。在下载时,注意根据你的系统是 32 位还是 64 位,选择对应的版本。

对于 Linux 系统,MySQL 官方提供了各种发行版对应的安装包,如 Debian、Ubuntu、Red Hat、CentOS 等。你可以根据自己使用的 Linux 发行版,在下载页面中找到对应的下载链接。例如,如果你使用的是 CentOS 系统,选择 CentOS 对应的 RPM 包进行下载。

2.2 安装步骤详解

这里以 Windows 系统下使用 MSI 安装包为例,详细介绍安装步骤:

  1. 下载完成后:双击下载的 MSI 安装包,启动安装向导。在欢迎界面,点击 “Next” 继续。
  2. 许可协议页面:仔细阅读许可协议,勾选 “I accept the license terms”,表示你同意协议内容,然后点击 “Next”。
  3. 选择安装类型:一般有 “Developer Default”(开发者默认)、“Server only”(仅服务器)、“Client only”(仅客户端)、“Full”(完整)和 “Custom”(自定义)等选项。“Developer Default” 会安装 MySQL 服务器、客户端以及一些常用的开发工具,适合大多数开发者,选择该选项后点击 “Next”。
  4. 检查安装条件:安装程序会检查系统是否满足安装要求,如是否安装了必要的依赖组件等。如果有缺失的组件,安装程序会提示你进行安装。确认无误后,点击 “Execute” 执行检查,完成后点击 “Next”。
  5. 设置安装路径:在这一步,你可以选择 MySQL 的安装路径。默认路径通常为 “C:\Program Files\MySQL\MySQL Server [版本号]”,如果你想更改路径,点击 “Change” 进行选择,然后点击 “Next”。
  6. 配置 MySQL Server:这一步涉及一些 MySQL 服务器的基本配置,如端口号(默认为 3306)、字符集(建议选择 UTF - 8 以支持多语言)等。保持默认设置或根据实际需求进行调整后,点击 “Next”。
  7. 设置 root 用户密码:root 用户是 MySQL 的超级管理员,设置一个强密码非常重要,以确保数据库的安全。输入密码并确认后,点击 “Next”。
  8. 配置 Windows 服务:你可以选择将 MySQL 注册为 Windows 服务,这样系统启动时可以自动启动 MySQL 服务。还可以设置服务名和启动类型(自动或手动),完成设置后点击 “Execute” 进行安装,安装完成后点击 “Finish”。

2.3 环境变量配置

环境变量配置是让系统能够在任何路径下找到 MySQL 执行文件的关键步骤。以 Windows 系统为例,配置步骤如下:

  1. 打开系统属性:右键点击 “此电脑”,选择 “属性”。
  2. 进入环境变量设置:在弹出的窗口中,点击左侧的 “高级系统设置”,然后在弹出的 “系统属性” 窗口中点击 “环境变量” 按钮。
  3. 编辑系统变量 Path:在 “系统变量” 列表中找到 “Path” 变量,点击 “编辑”。
  4. 添加 MySQL 路径:点击 “新建”,将 MySQL 安装目录下的 “bin” 目录路径添加进去。例如,如果你的 MySQL 安装在 “C:\Program Files\MySQL\MySQL Server 8.0”,则添加 “C:\Program Files\MySQL\MySQL Server 8.0\bin”。添加完成后,依次点击 “确定” 关闭所有窗口。

配置环境变量后,你就可以在命令提示符(CMD)或 PowerShell 中直接运行 MySQL 相关命令,而无需切换到 MySQL 的安装目录。

2.4 初始化与启动

安装完成后,首次使用 MySQL 需要进行初始化(对于某些安装方式,安装过程中可能已自动完成初始化)。如果你使用的是 ZIP 压缩包安装,或者安装过程中未自动初始化,可通过以下步骤初始化:

  1. 以管理员身份打开命令提示符(CMD)或 PowerShell。
  2. 切换到 MySQL 安装目录下的 “bin” 目录,例如:cd C:\Program Files\MySQL\MySQL Server 8.0\bin。
  3. 执行初始化命令:mysqld --initialize --console。初始化过程中,系统会生成一个临时密码,记录下来,后续登录时需要用到。

启动和停止 MySQL 服务有多种方法,以 Windows 系统为例:

  • 图形化方式:打开 “服务” 窗口(可以通过在搜索框中输入 “服务” 找到),在服务列表中找到 “MySQL” 服务(如果在安装时更改了服务名,以实际服务名为准),右键点击该服务,选择 “启动” 或 “停止”。
  • 命令行方式:以管理员身份打开命令提示符(CMD)或 PowerShell,执行启动命令net start mysql,停止命令net stop mysql。

2.5 登录与密码设置

首次登录 MySQL 时,使用初始化时生成的临时密码(如果是安装过程中设置了 root 密码,则使用设置的密码)。在命令提示符(CMD)或 PowerShell 中执行登录命令:

mysql -u root -p

输入密码后即可登录到 MySQL。登录后,为了安全起见,建议立即修改 root 用户的密码。可以使用以下 SQL 语句修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

将 “新密码” 替换为你想要设置的强密码。修改完成后,使用新密码重新登录 MySQL,确保密码修改成功。

通过以上步骤,你已经成功安装、配置并启动了 MySQL 数据库,并且能够使用 root 用户登录和管理数据库。接下来,我们将学习如何使用 Python 连接 MySQL 数据库,进行数据的存储和操作。

三、Python 与 MySQL 的桥梁:pymysql 库

3.1 安装 pymysql

在 Python 中,我们使用pymysql库来实现与 MySQL 数据库的交互。pymysql是一个纯 Python 实现的 MySQL 客户端库,它提供了简洁易用的接口,方便开发者在 Python 程序中执行 SQL 语句、管理事务等操作。在开始使用pymysql之前,需要先确保它已经安装在你的开发环境中。如果尚未安装,可以使用pip命令进行安装:

pip install pymysql

在安装过程中,可能会遇到一些问题,比如网络连接不稳定导致下载失败。这时,你可以尝试更换网络环境,或者使用国内的镜像源来加速下载。例如,使用清华大学的镜像源:

pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

如果提示权限不足,在 Windows 系统中,你可以以管理员身份运行命令提示符或 PowerShell;在 Linux 或 macOS 系统中,使用sudo命令获取管理员权限,如sudo pip install pymysql。

3.2 连接 MySQL 数据库

安装完成后,就可以在 Python 代码中使用pymysql连接 MySQL 数据库了。下面是一个简单的代码示例:

import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',  # MySQL服务器地址,这里是本地地址port=3306,  # MySQL服务器端口号,默认是3306user='root',  # 用户名password='your_password',  # 密码,替换为你的实际密码database='your_database'  # 要连接的数据库名
)

在上述代码中:

  • host指定了 MySQL 服务器的地址。如果 MySQL 服务器运行在本地,通常使用localhost或127.0.0.1。如果是远程服务器,则需要填写服务器的 IP 地址。
  • port指定了 MySQL 服务器的端口号,默认端口是 3306。如果在安装 MySQL 时修改了端口号,这里需要填写对应的端口。
  • user和password分别是登录 MySQL 的用户名和密码。在实际应用中,要确保密码的安全性,避免明文存储。
  • database指定了要连接的数据库名称。如果数据库不存在,连接会失败。

3.3 连接异常处理

在连接 MySQL 数据库的过程中,可能会出现各种异常情况,比如网络故障导致无法连接到服务器、用户名或密码错误、数据库不存在等。为了确保程序的稳定性和可靠性,需要对这些异常进行妥善处理。可以使用try - except语句来捕获异常,并进行相应的处理:

import pymysqltry:conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='your_database')print("连接成功!")# 在这里可以进行后续的数据库操作conn.close()  # 操作完成后关闭连接
except pymysql.Error as e:print(f"连接数据库时出现错误:{e}")

在上述代码中,try块中尝试连接 MySQL 数据库,如果连接成功,打印 “连接成功!”,并在后续可以进行数据库操作,最后关闭连接。如果在连接过程中出现pymysql.Error类型的异常,except块会捕获该异常,并打印错误信息。通过这种方式,可以避免因为连接异常导致程序崩溃,提高程序的健壮性。

连接成功后,就可以使用pymysql执行各种 SQL 语句,实现数据的插入、查询、更新和删除等操作。

四、SQL 语句的 Python 实践

4.1 数据插入

在 Python 中使用pymysql进行数据插入操作时,分为单条插入和批量插入两种方式。单条插入适用于数据量较小的情况,操作简单直接;批量插入则在处理大量数据时更具优势,能够显著提高插入效率,减少数据库连接开销。

  • 单条数据插入
import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='your_database'
)# 创建游标对象
cursor = conn.cursor()# SQL插入语句
sql = "INSERT INTO your_table (column1, column2, column3) VALUES (%s, %s, %s)"
data = ('value1', 'value2', 'value3')  # 要插入的数据try:# 执行SQL语句cursor.execute(sql, data)# 提交事务conn.commit()print("单条数据插入成功!")
except pymysql.Error as e:print(f"插入数据时出现错误:{e}")# 回滚事务conn.rollback()
finally:# 关闭游标和连接cursor.close()conn.close()

在上述代码中,sql是 SQL 插入语句,使用%s作为占位符,避免 SQL 注入风险。data是要插入的数据,以元组形式传递给execute方法。通过try - except块捕获可能出现的异常,若插入成功,提交事务并打印成功信息;若出现错误,回滚事务并打印错误信息。

  • 批量数据插入
import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='your_database'
)# 创建游标对象
cursor = conn.cursor()# SQL插入语句
sql = "INSERT INTO your_table (column1, column2, column3) VALUES (%s, %s, %s)"
# 要插入的多条数据,以列表嵌套元组的形式
data_list = [('value1_1', 'value1_2', 'value1_3'),('value2_1', 'value2_2', 'value2_3'),('value3_1', 'value3_2', 'value3_3')
]try:# 执行批量插入cursor.executemany(sql, data_list)# 提交事务conn.commit()print("批量数据插入成功!")
except pymysql.Error as e:print(f"插入数据时出现错误:{e}")# 回滚事务conn.rollback()
finally:# 关闭游标和连接cursor.close()conn.close()

批量插入时,使用executemany方法,第一个参数是 SQL 插入语句,第二个参数是包含多条数据的列表,每个元素都是一个元组,对应一条数据的各个字段值。同样,通过异常处理确保操作的可靠性。

4.2 数据查询

数据查询是数据库操作中非常重要的部分,通过查询可以从数据库中获取所需的数据。在 Python 中使用pymysql进行数据查询,包括简单查询和复杂查询。简单查询用于获取基本数据,而复杂查询则可以通过多种条件组合、连接多个表等方式,获取更丰富、更精确的数据。

  • 简单查询
import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='your_database'
)# 创建游标对象
cursor = conn.cursor()# SQL查询语句
sql = "SELECT column1, column2 FROM your_table WHERE column1 = %s"
condition = 'value1'  # 查询条件try:# 执行SQL语句cursor.execute(sql, (condition,))# 获取所有查询结果results = cursor.fetchall()for row in results:print(row)
except pymysql.Error as e:print(f"查询数据时出现错误:{e}")
finally:# 关闭游标和连接cursor.close()conn.close()

上述代码中,sql是简单的 SQL 查询语句,通过WHERE子句指定查询条件,使用%s占位符传递参数。execute方法执行查询语句,fetchall方法获取所有查询结果,然后遍历结果并打印。

  • 复杂查询:假设我们有两个表students和scores,students表包含student_id、name等字段,scores表包含student_id、course、score等字段,现在要查询每个学生的姓名以及他们的数学成绩。
import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='your_database'
)# 创建游标对象
cursor = conn.cursor()# SQL复杂查询语句,通过JOIN连接两个表
sql = """
SELECT s.name, sc.score
FROM students s
JOIN scores sc ON s.student_id = sc.student_id
WHERE sc.course = %s
"""
course = '数学'  # 查询条件try:# 执行SQL语句cursor.execute(sql, (course,))# 获取所有查询结果results = cursor.fetchall()for row in results:print(row)
except pymysql.Error as e:print(f"查询数据时出现错误:{e}")
finally:# 关闭游标和连接cursor.close()conn.close()

在这个复杂查询示例中,使用JOIN关键字连接students表和scores表,通过ON子句指定连接条件。WHERE子句用于筛选出数学课程的成绩。执行查询后,同样使用fetchall获取结果并遍历打印。

4.3 数据更新

数据更新操作用于修改数据库中已存在的数据。在 Python 中使用pymysql执行 SQL 更新语句时,需要注意正确设置更新条件,以确保只更新需要修改的数据,避免误操作导致数据错误。

import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='your_database'
)# 创建游标对象
cursor = conn.cursor()# SQL更新语句
sql = "UPDATE your_table SET column1 = %s WHERE column2 = %s"
new_value = 'new_value'  # 要更新的值
condition = 'old_value'  # 更新条件try:# 执行SQL语句cursor.execute(sql, (new_value, condition))# 提交事务conn.commit()print("数据更新成功!")
except pymysql.Error as e:print(f"更新数据时出现错误:{e}")# 回滚事务conn.rollback()
finally:# 关闭游标和连接cursor.close()conn.close()

在上述代码中,sql是 SQL 更新语句,SET子句指定要更新的字段和新值,WHERE子句指定更新条件。通过execute方法执行更新操作,若成功则提交事务,若出现错误则回滚事务。

4.4 数据删除

数据删除操作需要谨慎执行,因为一旦删除,数据将难以恢复。在 Python 中使用pymysql执行 SQL 删除语句时,务必仔细确认删除条件,避免误删重要数据。

import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='your_database'
)# 创建游标对象
cursor = conn.cursor()# SQL删除语句
sql = "DELETE FROM your_table WHERE column1 = %s"
condition = 'value_to_delete'  # 删除条件try:# 执行SQL语句cursor.execute(sql, (condition,))# 提交事务conn.commit()print("数据删除成功!")
except pymysql.Error as e:print(f"删除数据时出现错误:{e}")# 回滚事务conn.rollback()
finally:# 关闭游标和连接cursor.close()conn.close()

上述代码中,sql是 SQL 删除语句,WHERE子句指定删除条件。通过execute方法执行删除操作,若成功则提交事务,若出现错误则回滚事务,确保数据的安全性。

五、总结与展望

在本次的技术探索中,我们深入学习了 MySQL 数据库与 Python 的结合应用。从 MySQL 的安装、配置,到使用pymysql库实现 Python 与 MySQL 的连接,再到通过 SQL 语句进行数据的插入、查询、更新和删除操作,每一步都为我们在实际项目中处理数据奠定了坚实的基础。

在实际项目中,无论是 Web 开发中用户数据的管理,还是数据分析项目中对大量数据的存储和检索,Python 与 MySQL 的组合都能发挥强大的作用。例如,在开发一个电商平台时,MySQL 可以存储商品信息、用户订单、用户评价等数据,而 Python 则可以通过pymysql实现数据的高效处理,如订单的统计分析、用户行为的挖掘等。

希望读者能够将所学知识应用到实际项目中,不断积累经验,提升自己在数据库操作和 Python 编程方面的能力。同时,随着技术的不断发展,数据库领域也在不断创新,如 MySQL 的高可用架构、分布式数据库等,鼓励大家持续关注技术动态,探索更多的可能性。

相关文章:

【Python爬虫(21)】从0到1:Python与MySQL的深度融合

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…...

使用 Jetty 构建 HTTPS 服务入门指南

在互联网安全越来越重要的今天,使用 HTTPS 为 Web 服务提供安全传输成为标准配置。Jetty 是一个高性能、易用且功能丰富的开源 Java HTTP 服务器和 Servlet 容器,能够轻松实现 HTTPS 支持。本文将结合代码实例,引导您快速搭建一个基于 Jetty 的 HTTPS 服务。 一、Jetty 简介…...

网络通信-最大传输单元-MTU,网络安全零基础入门到精通实战教程!

文章目录 MTU 引用MTU 介绍 定义MTU 与 VLAN TagVLAN Tag 处理方式 IP分片可靠传输MTU 之 PMTUD PMTUD介绍IP头的DF分片位 DF 0 可以分片DF 1 不可以分片 注意事项 MTU 引用 以太网最初对报文长度没有限制,网络层最大可以接收65535个字节,但是以太…...

【如何学习商城源码】

学习商城源码是一个系统而深入的过程,需要掌握多种方法和技巧。以下是一些建议,帮助你有效地学习商城源码: 一、搭建学习环境 准备开发工具 编程语言相关:根据商城源码使用的编程语言,安装相应的集成开发环境&#xf…...

在nodejs中使用ElasticSearch(一)安装,使用

使用docker安装ElasticSearch和Kibana 1)创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据 2)提前创建好elasticsearch配置文件 data/elasticsearch/config/elasticsearch.yml文件 # Elasticsearch Configuration # # NOTE: Elas…...

封装一个vue3控制并行任务数量的组合式函数

一. 使用场景 使用环境: vue3 当需要处理多个异步任务时,想要控制并行异步任务的数量,不想所有任务同时执行导致产生性能上的问题, 比如当需要同时发起多个网络请求,但又不想一次性发出过多请求导致服务器压力过大或…...

SpringSecurity请求流转的本质

1. SpringSecurity核心源码分析 分析SpringSecurity的核心原理,那么我们从哪开始分析?以及我们要分析哪些内容? 系统启动的时候SpringSecurity做了哪些事情?第一次请求执行的流程是什么?SpringSecurity中的认证流程是怎么样的?1.1 系统启动 当我们的Web服务启动的时候,…...

JavaScript数组-数组中新增元素

在JavaScript开发过程中,数组是一种非常常用的数据结构,它允许我们以有序的方式存储多个值。随着应用需求的变化,我们经常需要向现有的数组中添加新的元素。本文将详细介绍几种向数组中新增元素的方法,并探讨它们的特点和适用场景…...

【AI工具之Deepseek+Kimi一键免费生成PPT】

1.打开Deepseek网页:DeepSeek 2.使用Deepseek获得一份PPT大纲(输入背景需求约束条件进行提问)如下图: 3.复制Deepseek输出的PPT大纲 4.打开Kimi网页:Kimi.ai - 会推理解析,能深度思考的AI助手 5.在Kimi中…...

基于微信小程序的宿舍报修管理系统设计与实现,SpringBoot(15500字)+Vue+毕业论文+指导搭建视频

运行环境 jdkmysqlIntelliJ IDEAmaven3微信开发者工具 项目技术SpringBoothtmlcssjsjqueryvue2uni-app 宿舍报修小程序是一个集中管理宿舍维修请求的在线平台,为学生、维修人员和管理员提供了一个便捷、高效的交互界面。以下是关于这些功能的简单介绍: …...

ok113i平台——更改根目录分区大小

问题:根目录的空间太小;目前只有992M(包含了home目录大小) 通过改下面三个文件任一个,三个都会同时更改,以配置各分区容量: /home/forlinx/OK113i-linux-sdk/device/config/chips/t113_i/configs/ok113i/l…...

DeepSeek 助力 Vue 开发:打造丝滑的右键菜单(RightClickMenu)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

IDEA CodeGPT 使用教程

IDEA CodeGPT 使用教程 CodeGPT 是一个 IntelliJ IDEA 插件,可以利用 OpenAI(或自建 AI 模型)来帮助开发者完成代码编写、优化、调试、解释错误等任务。以下是详细的安装与配置教程。 1. 安装 CodeGPT 插件 方式 1:从插件市场安…...

WLAN无线2.4G/5G频段划分和可用信道

互联网各领域资料分享专区(不定期更新): Sheet...

HTML/CSS中后代选择器

1.作用:选中指定元素中,符合要求的后代元素. 2.语法:选择器1 选择器2 选择器3 ...... 选择器n(使用空格隔开) 3.举例: /* 选中ul中的所有li */ul li{color: red;}/* 选中类名为subject元素中的所有li */.subject li{color: blue;}/* 选中类名为subject元素中的所有类名为f…...

自己安装一台DeepSeek的服务器

找一台还可以的Linux服务器,登录后执行: curl -fsSL https://ollama.com/install.sh | sh 等待安装完成: 执行命令,根据服务器能力安装不同版本的AI模型: ollama run llama3.2 下一步就开始对话吧: llam…...

StableDiffusion学习笔记——4、模型下载和学习

目录   大家好,我是阿赵。   继续学习StableDiffusion的使用。   这次来学习一下模型的相关知识 一、 什么是模型 之前我们了解过,在StableDiffusion里面生成图片或者视频,都需要先选择模型。模型用通俗的话来说,就是决定了…...

蓝桥杯班级活动

题目描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 id 为 ai。 老师希望通…...

微软宣布 Windows 11 将不再免费升级:升级需趁早

大家都知道如果你现在是Windows 10 系统,其实可以免费升级到正版 Windows 11,只要你的电脑配置满足 TPM2.0要求。 而最近微软已经公布了 Windows 10 的最后支持时间,也就是今年10月14日,在这之后微软将不再对Windows 10负责&#…...

Java开发实习面试笔试题(含答案)

在广州一家中大公司面试(BOSS标注是1000-9999人,薪资2-3k),招聘上写着Java开发,基本没有标注前端要求,但是到场知道是前后端分离人不分离。开始先让你做笔试(12道问答4道SQL题)&…...

什么叫不可变数据结构?

不可变数据结构(Immutable Data Structures)是指一旦创建之后,其内容就不能被修改的数据结构。这意味着任何对不可变数据结构的“修改”操作实际上都会返回一个新的数据结构,而原始数据结构保持不变。 一、不可变数据结构的核心特点 不可变性:一旦创建后,数据结构的内容…...

3D与2D机器视觉机械臂引导的区别

3D与2D机器视觉在机械臂引导中的主要区别如下: 数据维度 2D视觉:仅处理平面图像,提供X、Y坐标信息,无法获取深度(Z轴)数据。 3D视觉:处理三维空间数据,提供X、Y、Z坐标及物体的姿态…...

Effective Go-新手学习Go需要了解的知识

不知不觉从事Golang开发已有4+年了,回顾自己的成长经历,有很多感悟和心得。如果有人问我,学习Golang从什么资料开始,我一定给他推荐"Effective Go"。《Effective Go》是 Go 语言官方推荐的编程风格和最佳实践指南,其结构清晰,内容涵盖 Go 的核心设计哲学和常见…...

解析DrugBank数据库数据|Python

一、DrugBank 数据库简介 DrugBank 是一个综合性的生物信息学和化学信息学数据库,专门收录药物和靶点的详细信息。它由加拿大阿尔伯塔大学的 Wishart 研究组 维护,提供化学、药理学、相互作用、代谢、靶点等多方面的药物数据。DrugBank 结合了实验数据和…...

Day3 25/2/16 SUN

【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p4&v…...

专题 - Java Stream API

概述 分类 数据源 任何位置。 如:集合、数组、文件、随机数、 Stream 静态工厂等。 支持的数据类型 整型、长整型、双精度浮点型基本数据类型。引用数据类型。流管道的数据处理流程 流管道必须要有终止操作。否则永不执行,只是一个静默的无操作指令。流管道是懒运算的。当执…...

【前端框架】vue2和vue3的区别详细介绍

Vue 3 作为 Vue 2 的迭代版本,在性能、语法、架构设计等多个维度均有显著的变革与优化。以下详细剖析二者的区别: 响应式系统 Vue 2 实现原理:基于 Object.defineProperty() 方法实现响应式。当一个 Vue 实例创建时,Vue 会遍历…...

大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(3)

大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(3) 前言本篇摘要11. 使用transformers.agents构建Gradio UI11.3 创建和使用工具Tools11.3.1 默认工具箱与load_tool11.3.2 创建新工具11.3.3 管理代理的工具箱toolbox11.3…...

路由基础 | 路由引入实验 | 不同路由引入方式存在的问题

注:本文为 “路由基础 | 路由表 | 路由引入” 相关文章合辑。 未整理去重。 路由基本概念 1—— 路由表信息、路由进表以及转发流程、最长掩码匹配原则 静下心来敲木鱼已于 2023-11-26 14:06:22 修改 什么是路由 路由就是指导报文转发的路径信息,可以…...

网络原理-HTTP/HTTPS

文章目录 HTTPHTTP 是什么?理解“应用层协议”理解 HTTP 协议的⼯作过程HTTP 协议格式抓包⼯具的使用抓包⼯具的原理抓包结果协议格式总结 HTTP 请求(Request)认识 URLURL 的基本格式关于URL encode 认识“⽅法”(method&#xff…...