自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 Python 装饰器-使用装饰指定方法:为类方法添加异常处理

本文介绍了如何使用 Python 装饰器为类方法添加异常处理功能。通过实现一个装饰器,我们可以为指定的类方法捕获和处理异常,避免在每个方法中重复编写错误处理代码。本文展示了如何创建一个装饰器,使得在调用特定方法时,如果发生异常,可以选择打印堆栈信息并返回 `None`,或重新抛出异常。通过这种方式,我们可以使代码更加简洁、可维护,同时提升错误处理的统一性。

2024-12-23 11:16:32 436

原创 Fastapi教程:使用 aioredis 连接池执行Redis 的高效异步操作

在高并发的 Web 应用中,Redis 作为缓存系统至关重要。使用连接池可以有效避免频繁创建和销毁 Redis 连接的性能瓶颈。本文介绍了如何在 FastAPI 中通过 `aioredis` 实现异步操作并使用连接池来优化 Redis 的访问。通过设置连接池的最小和最大连接数,可以高效管理 Redis 连接,提升应用性能,简化代码结构。这种方法特别适合需要频繁与 Redis 交互的场景,帮助构建高效、可扩展的 Web 应用。

2024-12-11 10:25:20 1476

原创 Fastapi教程:使用aioredis异步访问redis

本文详细介绍了如何在 FastAPI 中使用异步方式访问 Redis,包括 Redis 连接的创建、数据的增删查改、键过期、使用管道操作和事务管理等内容。通过使用aioredis库,结合 FastAPI 提供的异步支持,可以高效地处理缓存数据,提升系统性能。希望本文对你在项目中使用 Redis 提供了帮助。

2024-12-11 10:16:08 1264

原创 Fastapi教程:使用异步sqlalchemy操作mysql

本文详细讲解了如何在 FastAPI 中使用 SQLAlchemy ORM 来完成 MySQL 数据库的增删查改操作,利用异步的数据库引擎和会话机制,让应用在高并发场景下保持高效。通过 SQLAlchemy ORM,我们不仅可以简化数据库操作,还能提高代码的可读性和维护性。在实际开发中,采用 ORM 方式进行数据访问,是开发者处理数据库交互的常见做法。

2024-12-11 10:03:19 2048

原创 Fastapi教程:使用Pydantic定义数据模型

Pydantic 是 FastAPI 的核心库,用于数据验证和序列化。通过基于 Python 类型注解的模型定义,Pydantic 可以自动验证请求数据的类型和格式,并提供详细的错误信息。它支持字段约束、嵌套模型、数据转换等功能,简化了数据处理流程。结合 FastAPI,Pydantic 帮助开发者高效构建高性能、类型安全的 API,确保数据一致性和代码的可维护性。

2024-12-11 09:36:40 1199

原创 Fastapi教程:快速入门用 FastAPI 构建你的第一个 API

使用 FastAPI 创建基本 API 服务。运行和测试同步与异步 API。了解 FastAPI 提供的自动文档和异步支持。

2024-12-11 09:25:03 1421

原创 Python协程:asyncio同步原语

在 Python 的异步编程中,`asyncio` 提供多种同步原语,用于协程之间的协调与资源共享。本文聚焦于四种核心工具:`Lock` 用于互斥访问共享资源,`Event` 实现任务间的信号传递,`Condition` 协调任务在特定条件下运行,而 `Semaphore` 限制并发任务的数量。这些工具能帮助开发者高效解决竞争条件、优化任务调度,为异步应用提供强大的控制能力。

2024-12-03 09:55:40 571

原创 异步与并发基础:select、poll 与 epoll 的原理、区别与适用场景

`select`、`poll` 和 `epoll` 是三种常用的 I/O 多路复用机制,用于在一个线程中同时处理多个文件描述符(如网络连接)。`select` 是最早的实现,性能在高并发情况下有限,`poll` 改进了这一点,但依然存在性能瓶颈。`epoll` 是 Linux 专有的高效解决方案,支持事件驱动模型,特别适合高并发网络应用。选择哪种机制依赖于应用的需求和操作系统平台。

2024-11-27 09:52:57 1206

原创 异步与并发基础:I/O 多路复用原理与应用

I/O 多路复用是一种高效的输入/输出管理技术,允许单个线程或进程同时处理多个 I/O 操作。它通过使用 `select`、`poll`、`epoll` 等系统调用,避免在等待 I/O 操作时阻塞进程,从而提高并发处理能力。I/O 多路复用常用于高并发的网络服务、实时数据处理和资源受限环境中。其主要优势在于高效地利用系统资源,减少线程/进程的创建和上下文切换,适用于 Web 服务器、聊天系统等场景。

2024-11-27 09:51:50 1057

原创 异步与并发基础:同步、异步、并发、并行简介

同步、异步、并发和并行是描述任务执行方式的不同概念。**同步**任务按顺序执行,每个任务需等待前一个完成;**异步**则允许任务在等待时执行其他任务,提升效率。**并发**是指程序可以管理多个任务的执行,任务之间交替进行;**并行**则是在多个处理器核心上同时执行任务,充分利用计算资源。理解这些概念帮助选择合适的编程模型,提高程序性能和响应速度。

2024-11-26 10:30:41 973

原创 异步与并发基础:Python 进程、线程、协程简介与对比

本文将深入探讨 Python 中的进程、线程和协程,分析它们之间的区别与联系。我们将介绍每种并发模型的工作原理、优缺点及适用场景,帮助开发者在不同场景下做出合适的并发选择。通过具体示例,本文还将阐述如何在 Python 中高效地使用进程、线程和协程进行并发编程,以及使用时需要注意的事项。

2024-11-26 10:15:21 553

原创 redislite:轻量级的嵌入式 Redis 解决方案

redislite。

2024-11-26 08:52:04 1003

原创 使用 Python Shelve 和 DBM 模块实现简单的数据持久化

shelve是 Python 的标准库之一,提供了一种方便的持久化存储方式。它允许开发者以键值对的形式存储 Python 对象,数据存储在文件中,使用起来类似于字典(dictshelve模块使用pickle模块将对象序列化并保存,因此几乎可以存储所有类型的 Python 对象。dbm模块也是 Python 标准库的一部分,提供了一种基于文件的键值对数据库接口。dbm允许使用简单的字符串作为键,支持对键值的持久化存储。与shelve不同,dbm模块更接近于低级数据库操作,通常适合需要高效存储和快速访问的场景。

2024-11-26 08:50:10 582

原创 Python协程:asyncio基本用法

在 Python 中,协程是一个可以暂停执行并在以后恢复执行的函数。你可以通过async def来定义一个协程函数,而await用于暂停协程的执行,直到某个异步操作完成。异步编程的核心优势是能够并发地执行 I/O 密集型任务,而不需要阻塞主线程。例如,进行大量的文件读写或网络请求时,异步编程能够帮助你高效地利用系统资源,提高程序的响应速度。done(已完成的任务)和pending(未完成的任务)。可以通过控制何时返回,支持以下选项::等待所有任务完成。:等待第一个任务完成。

2024-11-15 16:24:47 1693

原创 CasaOS:开源家庭云系统安装

CasaOS是一个基于Docker生态系统的开源家庭云系统,专为家庭场景而设计。致力于打造全球最简单、最易用、最优雅的家居云系统。安装CasaOS可以给鲁班猫带来更好的局域网文件传输体验。

2024-05-31 15:54:04 1720

原创 布隆过滤器简介

布隆过滤器(Bloom Filter)是一种空间效率高、查询效率快的数据结构,用于快速判断一个元素是否可能存在于一个集合中。它通过使用多个哈希函数和位数组来实现。

2024-04-23 14:59:03 779

原创 mysql报错:Too many connections

这个错误表明 MySQL 数据库已经达到了最大连接数限制,因此无法处理更多的连接请求。解决这个问题的方法通常是增加最大连接数限制或者优化数据库连接的使用。这将将最大连接数设置为 2000,并且使更改生效,但请注意,如果你增加了最大连接数,也要确保 MySQL 服务器有足够的资源来支持更多的连接。在 MySQL 中动态地设置最大连接数。这将将最大连接数设置为 2000,但同样需要确保 MySQL 服务器有足够的资源来支持更多的连接。参数设置为一个更高的值,并重新启动 MySQL 服务器。

2024-04-23 14:57:42 628

原创 一篇文章搞懂Mysql索引

索引是在数据库表上创建的一种排列,用于加速对表中数据的查询操作。它类似于书籍的目录,通过查阅目录可以更快地找到需要的内容。数据库中的索引可以根据一个或多个列的值进行排列,这样在查询时就能更快地定位到符合条件的数据行。优点通过索引,数据库系统可以迅速定位到符合查询条件的数据,减少了数据的扫描时间,从而提高查询效率。索引不仅对查询操作有帮助,对于排序和聚合操作也能提供较好的性能。缺点索引本身也需要存储空间,过多的索引可能会占用大量存储空间。

2024-04-22 10:54:10 1096

原创 并发与并行:python多线程详解

多进程和多线程都可以执行多个任务,线程是进程的一部分。线程的特点是线程之间可以共享内存和变量,资源消耗少,缺点是线程之间的同步和加锁比较麻烦。在cpython中,截止到3.12为止依然存在全局解释器锁(GIL),不能发挥多核的优势,因此python多线程更适合IO密集型任务并发提高效率,CPU密集型任务推荐使用多进程并行解决。

2024-04-22 10:52:53 1277

原创 Golang的[]interface{}为什么不能接收[]int?

在 Go 中,[]interface{} 和 []int 是两种不同的类型,虽然它们的底层数据结构都是切片,但是它们的元素类型不同。[]interface{} 是一个空接口切片,可以容纳任意类型的元素,而 []int 是一个整数切片,只能容纳整数类型的元素。在类型系统中,[]interface{} 表示一个空接口切片,可以接受任意类型的值,但这并不意味着它能够自动转换为其他类型的切片。要解决这个问题,你需要将 []int 类型的切片转换为 []interface{} 类型的切片,然后再传递给函数。

2024-04-17 10:28:05 528

原创 redis从入门到实战

Redis(Remote Dictionary Server)是一个开源的、基于内存的数据存储和缓存系统。它是一个高性能的键值存储数据库,,以其快速的读写能力、丰富的数据结构和多种应用场景而受到广泛关注。默认的database有16个,可以随意选择0-15。在互联网发展的初期,关系型数据库因其能够满足较低的访问和并发需求而得到广泛应用。然而,随着应用规模的扩大和对性能的不断提高,关系型数据库的一些局限性逐渐显现。

2024-03-22 10:05:20 1192

原创 二叉树原理和简单实现

二叉树是一种常见的树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树具有许多重要的应用,如在计算机科学中用于实现搜索树、堆、表达式树等。

2024-03-22 10:03:32 286

原创 Python基本数据类型:python字典原理

python字典原理。

2024-03-20 11:14:18 1028

原创 Django Management Command管理命令基本使用和在pycharm中断点调试

在 Django 中,管理命令(Management Command)是一个非常有用的工具,用于执行各种任务,例如数据库迁移、数据导入导出、定期任务等。你可以自定义管理命令来执行特定的任务。

2024-03-20 11:13:19 905

原创 深入理解 Python 中的线程锁:常用的锁类型及其应用场景

在 Python 中,线程锁(Thread Lock)是一种重要的同步机制,用于在多线程环境中保护共享资源,避免出现竞争条件(Race Condition)。除了常见的互斥锁、读写锁、信号量和事件外,还有一种重要的线程锁类型,即条件锁(Condition Lock)和重入锁(Reentrant Lock)。本文将介绍常用的线程锁类型,包括互斥锁、读写锁、信号量、事件、条件锁和重入锁,并探讨它们在不同情况下的应用场景。

2024-03-13 10:40:25 2309

原创 深入理解 Python 中的 is 和 ==,比较操作符的细微差别

在 Python 中,is和==是两种不同的比较操作符,用于比较对象之间的关系。

2024-03-13 10:22:56 1090

原创 搭建私有git服务器:GitLab部署

GitLab 是一个用于软件开发的开源平台,提供了代码仓库托管、协作、CI/CD(持续集成和持续交付)、监控、安全扫描等全套工具。它支持 Git 版本控制系统,并提供了许多功能,使得开发者和团队能够更高效地协作、部署和监控其软件项目。GitLab 提供了强大的代码仓库管理功能,支持 Git 版本控制系统。开发者可以在 GitLab 上创建公共或私有仓库,并进行代码的版本控制。GitLab 提供了一套协作工具,包括问题跟踪、合并请求、代码审查等,使得团队成员可以更方便地共同协作,解决问题和改进代码。

2024-02-23 08:51:30 3007 4

原创 Python闭包与装饰器:Python还可以使用闭包实现面向对象?

在编程中,闭包是指一个函数(称为内部函数)和与其相关的引用环境(通常是包含该函数的外部函数)组合而成的实体。内部函数可以访问其外部函数的变量,即使在外部函数已经执行完毕的情况下,这种访问仍然有效。让我们通过一个简单的示例来理解闭包。

2024-02-23 08:45:12 344

原创 Python闭包与装饰器: 一篇文章深入理接python闭包,闭包只能用来实现装饰器?

在编程中,闭包是指一个包含有函数和它在定义时的环境引用的对象。简而言之,闭包允许函数访问其创建时所在的词法作用域,即使在函数在其他地方被调用时仍然有效。这种机制使得函数成为了更为灵活和强大的工具。闭包是由函数和与其相关联的引用环境组成的实体。在Python中,当一个函数在另一个函数内部被定义时,就创建了一个闭包。# 内部函数,构成闭包# 创建闭包# 使用闭包print(result) # 输出 15在这个例子中,是闭包,它可以访问外部函数的变量x。

2024-02-22 10:19:16 394

原创 Python hashlib库:加密与数据完整性验证

哈希函数是一种将输入数据转换为固定长度散列值的算法。这个散列值通常是唯一的,即便是对输入数据进行微小的改动,散列值也会发生明显变化。哈希函数主要用于以下两个方面:数据完整性验证通过比较原始数据的哈希值和接收方计算得到的哈希值,可以验证数据在传输过程中是否发生了篡改。密码学应用哈希函数在密码学中广泛用于存储用户密码,生成数字签名等。

2024-01-05 11:00:35 757 1

原创 Python zipfile库详解:轻松处理压缩文件

通过本教程,我们学到了如何使用Python的zipfile库进行压缩文件的解压缩。这个库提供了丰富的功能,使得文件的压缩和解压缩过程变得非常简便。希望这个教程能够帮助你更好地理解和应用zipfile库。如果你有任何问题或建议,欢迎在评论中分享。祝你在Python的世界里编程愉快!

2024-01-05 10:21:54 732

原创 ubuntu设置开机自启服务脚本

如果服务成功启动,状态应显示为 “active”。现在,您的服务将在系统启动时自动启动编写启动脚本。创建一个服务文件:使用文本编辑器创建一个以。验证服务状态:使用以下命令检查服务的状态。启用服务:使用以下命令启用服务。启动服务:使用以下命令启动服务。结尾的服务文件,例如。

2023-10-13 14:53:32 911 3

原创 使用Python将MP4视频转换为图像

在计算机视觉和机器学习领域,我们经常需要处理视频数据。有时候,我们可能需要将视频转换为图像序列,以便进行后续的分析和处理。本文将介绍如何使用Python和OpenCV库将MP4视频文件转换为图像序列。

2023-10-13 11:31:03 1770 3

原创 docker compose部署zookeeper

docker部署zookeeper,python测试连接

2023-08-16 10:57:20 1331

原创 kuboard安装和使用

windows平台下使用docker和docker-compose部署Kuboard,并添加Docker Desktop for windows的k8s单机集群

2023-08-08 15:47:48 1071 1

原创 牛逼的python库-使用xpinyin库将汉字转换为汉语拼音

是一个Python库,用于将中文汉字转换为拼音。它使用简单而高效的方法来执行转换操作。以下示例演示了如何使用。这将中文文本"你好,世界!"转换为带声调的拼音。这将中文文本"你好,世界!库的一些常用用法示例,你还可以通过查阅。库的文档来了解更多用法和选项。

2023-07-05 17:23:38 765

原创 牛逼的python库-使用FuzzyWuzzy库进行模糊字符串匹配

FuzzyWuzzy是一个Python库,用于模糊字符串匹配和字符串相似度计算。,表示排序后的"apple pie"与"pie is delicious"的部分字符串之间的相似度为67。,表示"apple"与"aPpLe"的相似度为100。,表示"aple"与"apple"的相似度为90。这会计算出两个字符串的部分字符串之间的相似度。,表示"aple"与每个候选字符串的相似度。这会计算出对两个字符串进行排序后的相似度。这会计算出两个字符串之间的相似度百分比。这会计算出集合中的字符串之间的相似度。

2023-07-05 17:23:34 3505

原创 mysql锁

锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制。MySQL中为了保证数据访问的一致性与有效性等功能,实现了锁机制,MySQL中的锁是在服务器层或者存储引擎层实现的。

2023-07-04 17:44:21 110

原创 mysql binlog

binlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志,并且由Server层进行记录,使用任何存储引擎的mysql数据库都会记录binlog日志。binlog是通过追加的方式进行写入的,可以通过max_binlog_size参数设置每个binlog文件的大小,当文件大小达到给定值之后,会生成新的文件来保存日志。在实际应用中,binlog的主要使用场景有两个,分别是主从复制和数据恢复。

2023-07-04 17:42:13 306

原创 python使用pyinstaller打包运行过程中莫名的被阻塞

python使用pyinstaller打包运行过程中莫名的被阻塞

2023-06-20 10:30:09 698 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除