【100天精通python】Day33:使用python操作数据库_SQLite数据库的使用与实战
目录
专栏导读
1 SQLite 简介
2 SQLite数据库安装及使用
2.1 检查 SQLite 支持
2.2 创建数据库文件
2.2.1 使用 Python 创建数据库文件:
2.2.2 使用命令行创建数据库文件:
2.3 连接到 SQLite 数据库:
3 SQLite 中常用的SQL语句
3.1 SQL语句概述
3.2 SQLite 中常用的SQL 语句
(1)创建表:
(2)插入数据:
(3)查询数据:
(4) 更新数据:
(5) 删除数据:
(6)过滤数据:
(7)排序数据:
(8)计算统计:
(9)连接表:
(10)分组数据:
4 操作SQLite
5 SQLite 实战
5.1 实战1 创建一个简单的任务管理应用
5.2 实战2 创建一个任务管理应用,扩展编辑和删除任务
5.3 实战3 实现用户数据增删查看修改等
专栏导读

专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html

1 SQLite 简介
SQLite 是一种嵌入式关系型数据库管理系统(RDBMS),以其轻量、高效和易用而闻名。它是一个自包含的、无服务器的数据库引擎,将整个数据库存储在一个单一的文件中。SQLite 不需要独立的服务器进程,而是直接在应用程序中嵌入,因此适用于嵌入式系统、移动应用和桌面应用等多种环境。
以下是 SQLite 的一些重要特点和优势:
轻量和快速:SQLite 是一个轻量级的数据库引擎,不占用太多内存或资源。它在访问和查询数据时非常快速,特别适合小型项目和移动应用。
零配置:与其他数据库不同,SQLite 不需要独立的服务器进程,无需复杂的配置。只需一个文件,你就可以开始存储和查询数据。
自包含:SQLite 数据库存储在单个文件中,这使得备份、迁移和共享数据库变得非常简单。
无需专门管理:由于 SQLite 是嵌入式的,它不需要独立的数据库管理员(DBA)来管理和维护,减轻了数据库管理的负担。
支持多种编程语言:SQLite 支持多种编程语言,包括 C/C++、Python、Java、C#、PHP 等,使开发者可以在自己熟悉的语言中使用。
事务支持:SQLite 支持事务处理,确保数据的一致性和完整性。你可以使用事务来执行一组操作,要么全部成功,要么全部回滚。
开源和跨平台:SQLite 是开源的,可以在不同的操作系统上运行,包括 Windows、macOS、Linux 等。
尽管 SQLite 适用于许多场景,但它并不适合大规模、高并发的应用,因为它不支持多用户同时写入(写入锁定)等复杂的数据库操作。然而,在许多轻量级和中小规模项目中,SQLite 提供了一种简单、快速、易用的数据库解决方案。
2 SQLite数据库安装及使用
SQLite 是一个嵌入式数据库,通常无需单独安装,因为它已经作为 Python 的标准库的一部分。这意味着你可以在 Python 中直接使用 SQLite,而不需要安装额外的软件。以下是如何使用 Python 中的 SQLite:
2.1 检查 SQLite 支持
大多数情况下,Python 已经默认包含了 SQLite 支持。你可以在 Python 交互式环境中运行以下代码,检查是否支持 SQLite:
import sqlite3
print(sqlite3.sqlite_version)
输出如下,如果输出显示了 SQLite 版本号,则说明你的 Python 支持 SQLite。

2.2 创建数据库文件
在 SQLite 中,数据库文件会在第一次连接数据库时自动创建,如果文件不存在的话。你无需手动创建数据库文件,而是在连接时指定数据库文件的名称,如果该文件不存在,SQLite 将会创建一个新的数据库文件。
2.2.1 使用 Python 创建数据库文件:
你可以使用以下代码来创建一个名为 mydatabase.db 的数据库文件并连接到它:
import sqlite3# 连接到 SQLite 数据库(如果不存在则会创建)
conn = sqlite3.connect('mydatabase.db')# 关闭连接
conn.close()
在这个示例中,
sqlite3.connect()函数的参数是数据库文件的名称,即'mydatabase.db'。如果该文件不存在,SQLite 会自动创建一个新的数据库文件。请注意,数据库文件将会在与你的 Python 脚本相同的目录下创建。如果你希望将数据库文件保存在特定的目录中,你需要提供完整的路径。在连接到数据库时,SQLite 将检查指定的路径是否存在,如果不存在则会创建相应的数据库文件。
总之,你不需要手动创建 SQLite 数据库文件,只需要在连接时指定数据库文件的名称或路径即可。
2.2.2 使用命令行创建数据库文件:
如果你想在命令行中创建数据库文件,你可以使用 SQLite 的命令行工具。打开终端或命令行窗口,然后执行以下命令:
sqlite3 mydatabase.db
这将会打开一个 SQLite 命令行会话,同时创建了一个名为 mydatabase.db 的数据库文件。在 SQLite 命令行会话中,你可以执行 SQL 语句来创建表、插入数据等操作。
无论你是使用 Python 还是命令行,只要连接到一个不存在的数据库文件,SQLite 都会自动创建该数据库文件。
2.3 连接到 SQLite 数据库:
你可以使用 sqlite3.connect() 函数连接到 SQLite 数据库文件。如果指定的数据库文件不存在,它会被创建。
import sqlite3# 连接到 SQLite 数据库(如果不存在则会创建)
conn = sqlite3.connect('mydatabase.db')
3 SQLite 中常用的SQL语句
3.1 SQL语句概述
SQL(Structured Query Language)是一种用于管理关系型数据库的标准化查询语言。它用于执行各种数据库操作,包括数据的查询、插入、更新、删除以及定义数据库结构等。以下是 常用的SQL 语句:
DDL(Data Definition Language): 数据定义语言用于定义和管理数据库的结构,包括表、列、索引等。
CREATE TABLE:创建数据表。ALTER TABLE:修改数据表结构。DROP TABLE:删除数据表。CREATE INDEX:创建索引。DML(Data Manipulation Language): 数据操作语言用于执行数据的增删改查操作。
SELECT:查询数据。INSERT INTO:插入数据。UPDATE:更新数据。DELETE FROM:删除数据。DQL(Data Query Language): 数据查询语言用于查询和检索数据。
SELECT:用于从数据库中检索数据。DCL(Data Control Language): 数据控制语言用于管理数据库的权限和访问控制。
GRANT:授予用户或角色访问权限。REVOKE:撤销用户或角色的访问权限。TCL(Transaction Control Language): 事务控制语言用于管理数据库中的事务操作。
COMMIT:提交事务。ROLLBACK:回滚事务。SAVEPOINT:设置保存点,以便在事务中进行部分回滚。SQL 语句是用于与数据库交互的关键工具。无论是创建数据库结构、执行数据操作,还是从数据库中检索信息,SQL 都为开发者提供了强大的工具来管理和处理数据。不同的关系型数据库系统可能在一些语法和功能上有所不同,但 SQL 的核心语法通常是通用的。
3.2 SQLite 中常用的SQL 语句
SQLite 支持标准的 SQL 语法,以下是一些在 SQLite 中常用的 SQL 语句示例:
(1)创建表:
使用 CREATE TABLE 语句创建数据表。
CREATE TABLE users (id INTEGER PRIMARY KEY,username TEXT NOT NULL,email TEXT UNIQUE,age INTEGER
);
(2)插入数据:
使用 INSERT INTO 语句插入数据到数据表中。
INSERT INTO users (username, email, age)
VALUES ('user1', 'user1@example.com', 25);
(3)查询数据:
使用 SELECT 语句查询数据。
SELECT * FROM users;
(4) 更新数据:
使用 UPDATE 语句更新数据。
UPDATE users
SET age = 30
WHERE username = 'user1';
(5) 删除数据:
使用 DELETE FROM 语句删除数据。
DELETE FROM users
WHERE username = 'user1';
(6)过滤数据:
使用 WHERE 子句来过滤数据。
SELECT * FROM users
WHERE age > 25;
(7)排序数据:
使用 ORDER BY 子句来排序数据。
SELECT * FROM users
ORDER BY age DESC;
(8)计算统计:
使用聚合函数(如 COUNT、SUM、AVG)来计算统计信息。
SELECT COUNT(*) FROM users;
SELECT AVG(age) FROM users;
(9)连接表:
使用 JOIN 语句连接多个数据表。
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
(10)分组数据:
使用 GROUP BY 子句分组数据。
SELECT gender, AVG(age) FROM users
GROUP BY gender;
4 操作SQLite
操作 SQLite 数据库涉及创建连接、创建游标、执行 SQL 语句、处理数据等步骤。以下是一个简单的示例,演示了如何使用 Python 的 sqlite3 模块来操作 SQLite 数据库:
import sqlite3# 连接到 SQLite 数据库(如果不存在则会创建)
conn = sqlite3.connect('mydatabase.db')# 创建游标对象
cursor = conn.cursor()# 创建数据表
create_table_query = '''
CREATE TABLE IF NOT EXISTS books (id INTEGER PRIMARY KEY,title TEXT NOT NULL,author TEXT,price REAL
)
'''
cursor.execute(create_table_query)# 插入数据
insert_query = 'INSERT INTO books (title, author, price) VALUES (?, ?, ?)'
data = [('Book A', 'Author A', 19.99),('Book B', 'Author B', 29.99),('Book C', 'Author C', 9.99)]
cursor.executemany(insert_query, data)# 提交事务
conn.commit()# 查询数据
select_query = 'SELECT * FROM books'
cursor.execute(select_query)
rows = cursor.fetchall()
for row in rows:print(row)# 关闭游标和连接
cursor.close()
conn.close()
输出

在这个示例中,我们首先创建了一个数据库连接,然后创建了一个游标对象。接着,我们执行 SQL 语句来创建数据表、插入数据和查询数据。最后,我们提交事务并关闭游标和连接。
5 SQLite 实战
SQLite 在许多轻量级和中小型项目中都有很好的应用。
5.1 实战1 创建一个简单的任务管理应用
以下是一个 SQLite 实战示例,展示了如何创建一个简单的任务管理应用,其中包括创建任务、列出任务、标记任务为完成等功能。
import sqlite3# 连接到 SQLite 数据库(如果不存在则会创建)
conn = sqlite3.connect('task_manager.db')# 创建游标对象
cursor = conn.cursor()# 创建数据表
create_table_query = '''
CREATE TABLE IF NOT EXISTS tasks (id INTEGER PRIMARY KEY,title TEXT NOT NULL,description TEXT,completed BOOLEAN
)
'''
cursor.execute(create_table_query)def create_task(title, description):insert_query = 'INSERT INTO tasks (title, description, completed) VALUES (?, ?, ?)'cursor.execute(insert_query, (title, description, False))conn.commit()print("Task created successfully.")def list_tasks():select_query = 'SELECT * FROM tasks'cursor.execute(select_query)tasks = cursor.fetchall()for task in tasks:print(f"Task ID: {task[0]}, Title: {task[1]}, Completed: {task[3]}")def mark_task_completed(task_id):update_query = 'UPDATE tasks SET completed = ? WHERE id = ?'cursor.execute(update_query, (True, task_id))conn.commit()print("Task marked as completed.")# 创建任务
create_task("Buy groceries", "Get milk, eggs, and bread")# 列出任务
list_tasks()# 标记任务为完成
task_id_to_complete = 1
mark_task_completed(task_id_to_complete)# 列出更新后的任务列表
list_tasks()# 关闭游标和连接
cursor.close()
conn.close()
输出:

在这个示例中,我们创建了一个
tasks数据表,用于存储任务的信息。我们实现了三个基本功能:创建任务、列出任务和标记任务为完成。确保你已经安装了
sqlite3模块,通常它已经作为 Python 的标准库的一部分。在实际应用中,你可能还需要进行更多的错误处理、用户界面设计等,以满足实际需求。
5.2 实战2 创建一个任务管理应用,扩展编辑和删除任务
当涉及编辑和删除任务时,我们可以添加相应的功能来实现这些操作。以下是一个扩展了编辑和删除任务功能的 SQLite 实战示例:
import sqlite3# 连接到 SQLite 数据库(如果不存在则会创建)
conn = sqlite3.connect('task_manager.db')# 创建游标对象
cursor = conn.cursor()# 创建数据表
create_table_query = '''
CREATE TABLE IF NOT EXISTS tasks (id INTEGER PRIMARY KEY,title TEXT NOT NULL,description TEXT,completed BOOLEAN
)
'''
cursor.execute(create_table_query)def create_task(title, description):insert_query = 'INSERT INTO tasks (title, description, completed) VALUES (?, ?, ?)'cursor.execute(insert_query, (title, description, False))conn.commit()print("Task created successfully.")def list_tasks():select_query = 'SELECT * FROM tasks'cursor.execute(select_query)tasks = cursor.fetchall()for task in tasks:print(f"Task ID: {task[0]}, Title: {task[1]}, Completed: {task[3]}")def mark_task_completed(task_id):update_query = 'UPDATE tasks SET completed = ? WHERE id = ?'cursor.execute(update_query, (True, task_id))conn.commit()print("Task marked as completed.")def edit_task(task_id, new_title, new_description):update_query = 'UPDATE tasks SET title = ?, description = ? WHERE id = ?'cursor.execute(update_query, (new_title, new_description, task_id))conn.commit()print("Task edited successfully.")def delete_task(task_id):delete_query = 'DELETE FROM tasks WHERE id = ?'cursor.execute(delete_query, (task_id,))conn.commit()print("Task deleted successfully.")# 创建任务
create_task("Buy groceries", "Get milk, eggs, and bread")# 编辑任务
edit_task(1, "Buy groceries", "Get milk, eggs, bread, and fruits")# 列出任务
list_tasks()# 删除任务
delete_task(1)# 列出更新后的任务列表
list_tasks()# 关闭游标和连接
cursor.close()
conn.close()
5.3 实战3 实现用户数据增删查看修改等
以下是一个使用 SQLite 数据库的案例,展示了如何实现新增用户数据、查看用户数据、修改用户数据和删除用户数据等操作:
import sqlite3# 连接到 SQLite 数据库(如果不存在则会创建)
conn = sqlite3.connect('user_database.db')# 创建游标对象
cursor = conn.cursor()# 创建数据表
create_table_query = '''
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,username TEXT NOT NULL,email TEXT NOT NULL,age INTEGER
)
'''
cursor.execute(create_table_query)def create_user(username, email, age):insert_query = 'INSERT INTO users (username, email, age) VALUES (?, ?, ?)'cursor.execute(insert_query, (username, email, age))conn.commit()print("User created successfully.")def list_users():select_query = 'SELECT * FROM users'cursor.execute(select_query)users = cursor.fetchall()for user in users:print(f"User ID: {user[0]}, Username: {user[1]}, Email: {user[2]}, Age: {user[3]}")def edit_user(user_id, new_username, new_email, new_age):update_query = 'UPDATE users SET username = ?, email = ?, age = ? WHERE id = ?'cursor.execute(update_query, (new_username, new_email, new_age, user_id))conn.commit()print("User information edited successfully.")def delete_user(user_id):delete_query = 'DELETE FROM users WHERE id = ?'cursor.execute(delete_query, (user_id,))conn.commit()print("User deleted successfully.")# 创建用户
create_user("user1", "user1@example.com", 25)# 查看用户列表
list_users()# 修改用户信息
edit_user(1, "updated_user1", "updated@example.com", 30)# 查看更新后的用户列表
list_users()# 删除用户
delete_user(1)# 查看删除后的用户列表
list_users()# 关闭游标和连接
cursor.close()
conn.close()
输出:

在这个案例中,我们创建了一个
users数据表,用于存储用户的信息。我们实现了四个基本功能:创建用户、查看用户列表、编辑用户信息和删除用户。这些功能的实现都依赖于 SQL 的INSERT、SELECT、UPDATE和DELETE语句。
相关文章:
【100天精通python】Day33:使用python操作数据库_SQLite数据库的使用与实战
目录 专栏导读 1 SQLite 简介 2 SQLite数据库安装及使用 2.1 检查 SQLite 支持 2.2 创建数据库文件 2.2.1 使用 Python 创建数据库文件: 2.2.2 使用命令行创建数据库文件: 2.3 连接到 SQLite 数据库: 3 SQLite 中常用的SQL语句…...
通过将信号频谱与噪声频谱进行比较,自动检测适当的带通滤波器转折频率研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【Sklearn】基于多层感知器算法的数据分类预测(Excel可直接替换数据)
【Sklearn】基于多层感知器算法的数据分类预测(Excel可直接替换数据) 1.模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果1.模型原理 多层感知器(Multilayer Perceptron,MLP)是一种前馈神经网络,用于解决分类和回归问题。它包含输入层、若干个隐…...
在 Windows 中恢复数据的 5 种方法
发生数据丢失的原因有多种。无论是因为文件被意外删除、文件系统或操作系统损坏,还是由于软件或硬件级别的存储故障,数据都会在您最意想不到的时候丢失。今天我们重点介绍五种数据恢复方法,以应对意外情况的发生。 1.从另一台机器启动硬盘 如…...
配置使用Gitee账号认证登录Grafana
三方社会化身份源 集成gitee第三方登录 第三方登录的原理 所谓第三方登录,实质就是 OAuth 授权。用户想要登录 A 网站,A 网站让用户提供第三方网站的数据,证明自己的身份。获取第三方网站的身份数据,就需要 OAuth 授权。 举例来…...
使用 Flask 部署 Next.js
原文 使用 Flask 部署 Next.js Flask 和 Next.js 是两个独特的开源 Web 框架,分别构建在 Python 和 JavaScript 编程语言之上。 您可以在没有 Next.js 的情况下构建 Flask 应用程序,也可以在没有 Flask 的情况下构建 Next.js 应用程序。但是࿰…...
网络安全--iptables
总结: iptables 的关键概念和功能: 规则(Rules): iptables 使用规则来定义特定的操作,例如允许或拒绝特定类型的网络流量。每条规则都由条件和操作组成。条件可以是源 IP 地址、目标 IP 地址、端口号等&a…...
【猿灰灰赠书活动 - 02期】- 【Java从入门到精通2023年7月最新(第7版)】
说明:博文为大家争取福利,与清华大学出版社合作进行送书活动 图书:《Java从入门到精通》 一、好书推荐 图书介绍 Java入门经典,95万Java程序员的入行选择。配备升级版Java开发资源库,在线大咖课在线答疑,学…...
Springboot 设置统一的请求返回格式
现在开发过程中主要采用前后端分离的方式进行开发测试,也就是前端封装请求,后端提供标准的API接口服务。一般现在json 格式受到开发者们的青睐,学习过程中我们可以设置接口的返回类型,那么怎么做到设置统一的返回格式呢࿱…...
logstash日志换行处理小解
logstash主用于日志实时数据收集、解析,并将数据转发的工具,内置的功能也相当强大。但,同时意味着,他可能接收到各种情况的数据。 此处,我们主要讲解我实际使用中,碰到的一个小问题,换行(\n)。…...
openpnp - 做一个抛料盒
文章目录 openpnp - 做一个抛料盒概述效果图零件 - 抛料盒主体零件 - 磁铁仓盖板END openpnp - 做一个抛料盒 概述 8mm散料飞达做回来了, 上面用的长方形磁铁(4x6x10mm)透过0.8mm的3D打印薄壁, 和固定铁板的吸力很大, 用磁力固定的非常好. 正好缺一个抛料盒, 就按照散料飞达的…...
数据结构——单链表的实现(c语言版)
前言 单链表作为顺序表的一种,了解并且熟悉它的结构对于我们学习更加复杂的数据结构是有一定意义的。虽然单链表有一定的缺陷,但是单链表也有它存在的价值, 它也是作为其他数据结构的一部分出现的,比如在图,哈希表中。…...
【计算机组成原理】24王道考研笔记——第四章 指令系统
第四章 指令系统 一、指令系统 指令是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该 机的指令系统,也称为指令集。 指令格式: 1.1分类 按地址码数目分类: 按指令长度分类&…...
C#使用FileInfo和DirectoryInfo类来执行文件和文件夹操作
System.IO.FileInfo 和 System.IO.DirectoryInfo 是C#中用于操作文件和文件夹的类,它们提供了许多有用的方法和属性来管理文件和文件夹。 System.IO.FileInfo: FileInfo 类用于操作单个文件的信息和内容。以下是一些常用的方法和属性: Exi…...
每日一学——TCP/IP参考模型
TCP/IP参考模型是一个用于网络通信的分层架构,它定义了一组协议,这些协议实现了计算机之间的数据传输。TCP/IP参考模型分为四层: 应用层(Application Layer):应用层是网络应用程序与网络之间的接口层。它提…...
LAXCUS分布式操作系统:技术创新引领高性能计算与人工智能新时代
随着科技的飞速发展,高性能计算、并行计算、分布式计算、大数据、人工智能等技术在各个领域得到了广泛应用。在这个过程中,LAXCUS分布式操作系统以其卓越的技术创新和强大的性能表现,成为了业界的佼佼者。本文将围绕LAXCUS分布式操作系统的技…...
两只小企鹅(Python实现)
目录 1 和她浪漫的昨天 2 未来的旖旎风景 3 Python完整代码 1 和她浪漫的昨天 是的,春天需要你。经常会有一颗星等着你抬头去看; 和她一起吹晚风吗﹖在春天的柏油路夏日的桥头秋季的公园寒冬的阳台; 这世界不停开花,我想放进你心里一朵&am…...
Linux | 使用wget命令调用服务接口
关注wx: CodingTechWork 引言 在docker容器中,想要调用某个服务接口,发现没有安装curl命令,但是有wget命令。本次总结一下wget的使用。 wget命令实践 容器访问 查看容器 docker ps进入容器 docker exec -it <container_id&…...
POJ Prime Path 埃氏筛法+广度优先搜索
思路:用埃氏筛法打个表,然后bfs即可 #include <iostream> #include <queue> using namespace std; typedef long long ll; ll inf 0x3f3f3f3f3f3f3f3f; bool isPrime[10007]; ll d[10007]; int tenPow[10]; int mint; void initTenPow() {…...
React React Native
文章目录 ReactReact vs Vue快速上手React,核心知识点JSX例子 组件虚拟DOM基于 React 的 UI 库跟Java、ObjectC交互 React Native基于 React Native 的 UI 库 React && React NativeReact && React Native 框架 React React 是一个用于构建用户界面…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
