【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 安装包为例,详细介绍安装步骤:
- 下载完成后:双击下载的 MSI 安装包,启动安装向导。在欢迎界面,点击 “Next” 继续。
- 许可协议页面:仔细阅读许可协议,勾选 “I accept the license terms”,表示你同意协议内容,然后点击 “Next”。
- 选择安装类型:一般有 “Developer Default”(开发者默认)、“Server only”(仅服务器)、“Client only”(仅客户端)、“Full”(完整)和 “Custom”(自定义)等选项。“Developer Default” 会安装 MySQL 服务器、客户端以及一些常用的开发工具,适合大多数开发者,选择该选项后点击 “Next”。
- 检查安装条件:安装程序会检查系统是否满足安装要求,如是否安装了必要的依赖组件等。如果有缺失的组件,安装程序会提示你进行安装。确认无误后,点击 “Execute” 执行检查,完成后点击 “Next”。
- 设置安装路径:在这一步,你可以选择 MySQL 的安装路径。默认路径通常为 “C:\Program Files\MySQL\MySQL Server [版本号]”,如果你想更改路径,点击 “Change” 进行选择,然后点击 “Next”。
- 配置 MySQL Server:这一步涉及一些 MySQL 服务器的基本配置,如端口号(默认为 3306)、字符集(建议选择 UTF - 8 以支持多语言)等。保持默认设置或根据实际需求进行调整后,点击 “Next”。
- 设置 root 用户密码:root 用户是 MySQL 的超级管理员,设置一个强密码非常重要,以确保数据库的安全。输入密码并确认后,点击 “Next”。
- 配置 Windows 服务:你可以选择将 MySQL 注册为 Windows 服务,这样系统启动时可以自动启动 MySQL 服务。还可以设置服务名和启动类型(自动或手动),完成设置后点击 “Execute” 进行安装,安装完成后点击 “Finish”。
2.3 环境变量配置
环境变量配置是让系统能够在任何路径下找到 MySQL 执行文件的关键步骤。以 Windows 系统为例,配置步骤如下:
- 打开系统属性:右键点击 “此电脑”,选择 “属性”。
- 进入环境变量设置:在弹出的窗口中,点击左侧的 “高级系统设置”,然后在弹出的 “系统属性” 窗口中点击 “环境变量” 按钮。
- 编辑系统变量 Path:在 “系统变量” 列表中找到 “Path” 变量,点击 “编辑”。
- 添加 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 压缩包安装,或者安装过程中未自动初始化,可通过以下步骤初始化:
- 以管理员身份打开命令提示符(CMD)或 PowerShell。
- 切换到 MySQL 安装目录下的 “bin” 目录,例如:cd C:\Program Files\MySQL\MySQL Server 8.0\bin。
- 执行初始化命令: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 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
数据结构-----双向链表
一、双向循环列表 head.h #ifndef __head_h__ #define __head_h__ #include <stdio.h> #include <string.h>…...
idea 无法下载源码
作为一个程序猿,难免会跟源码打交道,可是在下载源码有时候,会提示找不到对象,这是什么原因呢?今天我们来解决这个问题。 问题:idea无法下载源码 Cannot download sources Sources not found for:org.sprin…...
计算机网络-OSI七层参考模型与数据封装,网络安全零基础入门到精通实战教程!
目录 一、网络 1、网络的定义 2、网络的分类 3、网络的作用 4、网络的数据传输方式 5、网络的数据通讯方式 二、OSI七层参考模型 1、网络参考模型定义 2、分层的意义 3、分层与功能 4、TCP\IP五层模型 三、参考模型的协议 1、物理层 2、数据链路层 3、网络层 4…...
洛谷 P2234 [HNOI2002] 营业额统计(详解)c++
题目链接:P2234 [HNOI2002] 营业额统计 - 洛谷 1.题目分析 输入输出样例:根据题目知第一天的最小波动值为第一天的营业额,所以第一天的最小波动值是5,算出第二天的最小波动值就说拿前面的数分别减当前的数,并且取一个…...
Go日期时间处理工具Carbon
**注意:**本文大部分内容摘抄自-https://github.com/dromara/carbon/blob/master/README.cn.md使用文档 一、简介 一个轻量级的、易于使用的、语义智能的日期时间处理库,支持链式调用,已被 awesome-go 收录,现已经捐赠给了 drom…...
【Bert】自然语言(Language Model)入门之---Bert
every blog every motto: Although the world is full of suffering, it is full also of the overcoming of it 0. 前言 对bert进行梳理 论文: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 时间:…...
鸿蒙NEXT开发-网络管理
注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 目录 1. 网络管理-应用权限 1.1 概述 1.2 配…...
ceph HEALTH_WARN clock skew detected on mon.f, mon.o, mon.p, mon.q
问题 ceph health detail[WRN] MON_CLOCK_SKEW: clock skew detected on mon.f, mon.o, mon.p, mon.qmon.f clock skew 0.243128s > max 0.05s (latency 0.000836159s)mon.o clock skew 16.249s > max 0.05s (latency 0<...
Web开发技术概述
Web开发技术涵盖了前端和后端开发,以及数据库技术。前端开发包括使用HTML、CSS、JavaScript等原生技术,以及jQuery、Bootstrap、AngularJS、React、Vue等框架。后端开发则涉及ASP.NET、PHP、Python Web(Flask、Django)、Java Web&…...
级联选择器多选动态加载
一.级联展示 注:因为级联选择器这里是动态加载,因此如果上来选中一级就需要加载出后面三级的全部数据,依然会很卡,因此,和产品协商把一二级多选框去掉了,这样也避免了你选择一级不能实现子级被全部选中的问…...
三、数据治理应用开发整体架构
1.数据治理应用开发整体架构概览 该架构图描绘了一个全面的数据治理应用开发平台,旨在为用户提供从数据调研、治理构建、资产管理到应用开发、运维监控等全生命周期的一体化服务。整体架构呈现出模块化、松耦合的特点,并强调低代码开发和业务中台能力。 …...
【附带脚本】解决notion加载慢问题
问题原因 notion网站的服务器在国外,因为网络问题(国际出口带宽限制)导致访问速度较慢和域名解析延迟等问题。 解决方案 通过在 hosts 文件中直接指定一个更快的 IP 地址(例如国内镜像服务器),可以显著提…...
解锁机器学习核心算法 | 决策树:机器学习中高效分类的利器
引言 前面几篇文章我们学习了机器学习的核心算法线性回归和逻辑回归。这篇文章我们继续学习机器学习的经典算法——决策树(Decision Tree) 一、决策树算法简介 决策树算法是一种典型的分类方法,也是一种逼近离散函数值的方法。它的核心思想…...
网络原理-HTTP/HTTPS
文章目录 HTTPHTTP 是什么?理解“应用层协议”理解 HTTP 协议的⼯作过程HTTP 协议格式抓包⼯具的使用抓包⼯具的原理抓包结果协议格式总结 HTTP 请求(Request)认识 URLURL 的基本格式关于URL encode 认识“⽅法”(methodÿ…...
仿 Sora 之形,借物理模拟之技绘视频之彩
来自麻省理工学院、斯坦福大学、哥伦比亚大学以及康奈尔大学的研究人员携手开源了一款创新的3D交互视频模型——PhysDreamer(以下简称“PD”)。PD与OpenAI旗下的Sora相似,能够借助物理模拟技术来生成视频,这意味着PD所生成的视频蕴…...
C#多线程异步连接MySQL与SQLserver数据库
C#多线程异步连接MySQL与SQLserver数据库 一、前言二、多线程异步连接数据库代码2.1代码块2.2代码说明 参考文档 一、前言 当编写代码连接多台设备上的数据库时,如果采用同步逐个连接的方式,在网络畅通的情况下连接速度尚可,但当其中一台设备…...
DeepSeek告别服务器繁忙
原文地址:http://shen.iwiki.fun/2025/02/09/free-deepseek/ 博客地址:http://shen.iwiki.fun 一、申请API 1、硅基流动 免费额度:14元 注:平台 2000 万 Tokens 特指 Qwen2.5-14B-Instruct 模型单价下的数量,实际到账…...
Tomcat下载,安装,配置终极版(2024)
Tomcat下载,安装,配置终极版(2024) 1. Tomcat下载和安装 进入Apache Tomcat官网,我们可以看到这样一个界面。 现在官网目前最新版是Tomcat11,我用的是Java17,在这里我们选择Tomcat10即可。Tom…...
Docker 部署AnythingLLM
两个指令搞定 1.下载镜像 docker pull mintplexlabs/anythingllm 2.运行容器 export STORAGE_LOCATION$HOME/anythingllm mkdir -p $STORAGE_LOCATION chmod -R 777 $STORAGE_LOCATION touch "$STORAGE_LOCATION/.env" docker run -d -p 3001:3001 \ --cap-add SY…...
uniapp 支付宝小程序自定义顶部导航栏
我是用的是uniapp 的 uni-nav-bar 组件 根据项目需求配置即可 <uni-nav-bar v-if"title" :left-icon"leftIcon" :title"title" :statusBar"true" :fixed"true" clickLeft"goBack":border"false" :ba…...
Python 库自制 Cross-correlation 算法(当采样点已经1 对 1 匹配)
Python 库自制 Cross-correlation 算法 引言正文引言 虽然 Scipy 库中包含了成熟的 Cross-correlation 算法,但是有些时候我们无法使用现成的库进行数据处理。这里介绍如何使用 Python 基础函数自制 Cross-correlation 算法。后续读者可以将该算法转换为其他各类语言。 正文…...
SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频
文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.日历渲染代码:2.保存备忘录代码:3.删除备忘录代码: 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootuniApp框架开…...
【赵渝强老师】Spark RDD的缓存机制
Spark RDD通过persist方法或cache方法可以将计算结果的缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD才会被缓存在计算节点的内存中并供后面重用。下面是persist方法或cache方法的函数定义: def pers…...
基于 Spring Boot 的社区居民健康管理系统部署说明书
目录 1 系统概述 2 准备资料 3 系统安装与部署 3.1 数据库部署 3.1.1 MySQL 的部署 3.1.2 Navicat 的部署 3.2 服务器部署 3.3 客户端部署 4 系统配置与优化 5 其他 基于 Spring Boot 的社区居民健康管理系统部署说明书 1 系统概述 本系统主要运用了 Spri…...
《C语言动态顺序表:从内存管理到功能实现》
1.顺序表 1.1 概念 顺序存储的线性表,叫顺序表。 1.2顺序表存放的实现方式 可以使用数组存储数据,可以实现逻辑上相连,物理内存上也相连。也可以使用malloc在堆区申请一片连续的空间,存放数据,实现逻辑上相连&#…...
C++ 程序 return value 1 是什么原因
又是一次deepseek生成C 程序 return value 1 是什么原因 好的,用户问C程序返回值为1是什么原因。首先,我需要回想一下常见的导致程序返回非零值的情况。通常,返回1可能表示程序因为某种错误而终止。但具体原因可能有很多种,需要分…...
《DeepSeek 一站式工作生活 AI 助手》
最近国产AI工具DeepSeek在全球火出圈,登顶多个国家应用商店,下载量一路飙升。这匹AI “黑马” 到底凭什么征服全球用户?让我们全方位解锁DeepSeek——从基础入门到高阶玩法,从实用技巧到隐藏功能。 DeepSeek是一款功能强大的国产A…...
深入探索 DeepSeek 在数据分析与可视化中的应用
在数据驱动的时代,快速且准确地分析和呈现数据对于企业和个人都至关重要。DeepSeek 作为一款先进的人工智能工具,凭借其强大的数据处理和可视化能力,正在革新数据分析的方式。 1. 数据预处理与清洗 在进行数据分析前,数据预处理…...
【Python 学习 / 7】模块与文件操作
文章目录 前言一、导入模块1. 导入整个模块2. 导入模块中的特定函数3. 给模块或函数起别名 二、常用模块1. math 模块2. random 模块3. os 模块4. sys 模块 三、文件处理1. 打开文件2. 读取文件3. 写入文件4. 关闭文件5. 使用 with 语句管理文件 四、日期时间1. datetime 模块获…...
【DeepSeek】Mac m1电脑部署DeepSeek
一、电脑配置 个人电脑配置 二、安装ollama 简介:Ollama 是一个强大的开源框架,是一个为本地运行大型语言模型而设计的工具,它帮助用户快速在本地运行大模型,通过简单的安装指令,可以让用户执行一条命令就在本地运…...
计算机网络抄手 运输层
一、运输层协议概述 1. 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时&…...
激光雷达YDLIDAR X2 SDK安装
激光雷达YDLIDAR X2 SDK安装 陈拓 2024/12/15-2024/12/19 1. 简介 YDLIDAR X2官方网址https://ydlidar.cn/index.htmlYDLIDAR X2 YDLIDAR X2是一款高性能的激光雷达传感器,具有以下主要特点和规格参数: 测距频率:3000Hz 扫描频…...
DeepSeek-R1:使用KTransformers部署(保姆级教程)
1. 引言 KTransformers作为一个开源框架,专门为优化大规模语言模型的推理过程而设计。它支持GPU/CPU异构计算,并针对MoE架构的稀疏性进行了特别优化,可以有效降低硬件要求,允许用户在有限的资源下运行像DeepSeek-R1这样庞大的模型…...
什么是Spring Boot?
Spring Boot 是基于 Spring 框架的扩展工具,旨在简化 Spring 应用的初始搭建和开发流程。它通过约定优于配置和自动装配机制,减少了传统 Spring 开发中的繁琐配置,使开发者能快速构建独立运行、生产级别的应用。 Spring Boot 的核心特性 自动…...
C++ 学习路线:从入门到精通,全面掌握 C++ 编程
引言 C 是一种高性能的系统级编程语言,广泛应用于游戏开发、嵌入式系统、高性能计算等领域。尽管 C 的学习曲线较为陡峭,但掌握它将为你的职业发展带来巨大的优势。本文将为你提供一条清晰的 C 学习路线,帮助你从入门到精通,逐步…...
【算法精练】背包问题(01背包问题)
目录 1. 背包问题 2. 01背包问题 3. 优化 总结 1. 背包问题 经典的背包问题: 有一个背包,限制背包的体积;有一堆物品,从这堆物品中选择,在不超过背包容量的前提下,选出最大价值的物品; 从这个…...
宇树机器人G1 SDK实战和交付
最近客户有需求定制机宇树机器人G1 的功能,在接到需求后。进行了评估报价和开发。现在已经进入开发交付阶段 现在已经拿到了G1和H1版本的人型机器人。 需求是使用宇树机器G1 或H1在展馆进行路线移动,或指定移动路径,并且不能碰到小朋友&…...
使用EasyExcel和多线程实现高效数据导出
使用EasyExcel和多线程实现高效数据导出 1. 概述 在企业级应用中,数据导出是一个常见的需求。为了提高导出效率,尤其是在处理大量数据时,我们可以结合使用EasyExcel库和多线程技术。本文将详细介绍如何通过EasyExcel和多线程技术实现高…...
如何监控和优化 MySQL 中的慢 SQL
如何监控和优化 MySQL 中的慢 SQL 前言一、什么是慢 SQL?二、如何监控慢 SQL?1. 启用慢查询日志启用方法:日志内容: 2. 使用 mysqldumpslow 分析日志 三、如何分析慢 SQL?1. 使用 EXPLAIN 分析执行计划使用方法&#x…...
SPO(Self-Supervised Prompt Optimization)自我监督Prompt提示优化的全景指南
HuggingFace 链接:https://huggingface.co/spaces/XiangJinYu/SPO 作者也与国内的 ModelScope 魔搭社区官方进行了合作,现在可以体验由 Deepseek-V3 和 Qwen-2.5-72B 等开源模型驱动的 SPO。 ModelScope 链接: https://modelscope.cn/studios/AI-ModelScope/SPO 在大语言…...
【云安全】云原生-Docker(六)Docker API 未授权访问
Docker API 未授权访问 是一个非常严重的安全漏洞,可能导致严重的安全风险。 什么是 Docker API ? Docker API 是 Docker 容器平台提供的一组 RESTful API,用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API,…...
9.PG数据库层权限管理(pg系列课程)第2遍
一、PostgreSQL数据库属主 Postgres中的数据库属主属于创建者,只要有createdb的权限就可以创建数据库,数据库属主不一定拥有存放在该数据库中其它用户创建的对象的访问权限。数据库在创建后,允许public角色连接,即允许任何人连接…...
Pytorch深度学习教程_3_初识pytorch
欢迎来到《PyTorch深度学习教程》系列的第三篇!在前面的两篇中,我们已经介绍了Python及numpy的基本使用。今天,我们将深入探索PyTorch的核心功能,帮助你更好地理解和使用这个强大的深度学习框架。 欢迎订阅专栏: 深度…...
个人博客5年回顾
https://huangtao01.github.io/ 五年前,看程序羊的b站视频做的blog,受限于网络,只能单向学习,没有人指导与监督,从来没有想过,有没有什么问题? 一、为什么要做个人博客? 二、我是怎么…...
DeepSeek与ChatGPT:会取代搜索引擎和人工客服的人工智能革命
云边有个稻草人-CSDN博客 在众多创新技术中,DeepSeek和ChatGPT无疑是最为引人注目的。它们通过强大的搜索和对话生成能力,能够改变我们与计算机交互的方式,帮助我们高效地获取信息,增强智能服务。本文将深入探讨这两项技术如何结合…...
SpringBoot高级-底层原理
目录 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 02-SpringBoot2高级-自动化配置初体验 03-SpringBoot2高级-底层原理-Configuration配置注解 04-SpringBoot2高级-底层原理-Import注解使用1 05-SpringBoot2高级-底层原理-Import注解使用2 06-S…...
百问网(100ask)的IMX6ULL开发板的以太网控制器(MAC)与物理层(PHY)芯片(LAN8720A)连接的原理图分析(包含各引脚说明以及工作原理)
前言 本博文承接博文 https://blog.csdn.net/wenhao_ir/article/details/145663029 。 本博文和博文 https://blog.csdn.net/wenhao_ir/article/details/145663029 的目录是找出百问网(100ask)的IMX6ULL开发板与NXP官方提供的公板MCIMX6ULL-EVK(imx6ull14x14evk)在以太网硬件…...
使用 PyTorch 实现标准卷积神经网络(CNN)
卷积神经网络(CNN)是深度学习中的重要组成部分,广泛应用于图像处理、语音识别、视频分析等任务。在这篇博客中,我们将使用 PyTorch 实现一个标准的卷积神经网络(CNN),并介绍各个部分的作用。 什…...
openGauss 3.0 数据库在线实训课程18:学习视图管理
前提 我正在参加21天养成好习惯| 第二届openGauss每日一练活动 课程详见:openGauss 3.0.0数据库在线实训课程 学习目标 掌握openGauss视图的管理:创建视图、删除视图、查询视图的信息、修改视图的信息。 课程作业 1.创建表,创建普通视图…...