发现

社区文章

来自 MMao 贡献者的精选知识。

Python Pydantic 中的 alias 字段别名详解:优雅解决命名规范冲突

在现代软件开发中,我们经常需要处理不同系统之间的数据交换。Python 开发者通常遵循 PEP 8 规范使用 snake_case 命名,而前端 JavaScript 开发者习惯使用 camelCase,数据库可能又有自己的命名约定。如何在保持代码规范的同时实现系统间的无缝对接?Pydantic 的...

Python解包操作

Python 的解包操作符 (用于列表、元组等序列)和 *(用于字典)可以用于多种场景。它们使得代码更简洁、灵活,并且提高了可读性。下面我会列举出几个常见的使用场景。 1. 函数参数中的解包(args 和 kwargs) 使用 * 解包列表/元组作为位置参数: 在定义函数时,*args 用于收集额外...

在 Windows 11 上搭建 SFTP 服务器并自定义默认路径

在本文中,我们将介绍如何在 Windows 11 上搭建一个 SFTP 服务器,并允许用户同时使用 SFTP 和 SSH 连接。此外,我们将展示如何自定义默认路径。 1 安装 OpenSSH 服务器 1.1 打开“设置”应用 你可以通过按 Win + I 快捷键快速打开“设置”。 1.2 导航到“系...

Python nonlocal关键字

nonlocal 关键字在 Python 中用于在嵌套函数中引用外部非全局变量。这意味着可以在嵌套函数中修改外部函数的变量,而不是创建一个新的局部变量。 示例代码 下面是一个使用 nonlocal 的简单示例,帮助你理解它的作用和用法: def outer_function(): var = "He...

FastAPI 中的 embed 参数详解

在使用 FastAPI 开发 API 时,有时需要从请求体中提取单个字段。在这种情况下,FastAPI 提供了一个非常有用的参数:embed。本文将详细介绍 embed 参数的用途和使用方法。 什么是 embed 参数? embed 参数用于指定在接收单个字段时,是否将该字段嵌入到一个 JSON 对...

终端 ANSI 转义序列颜色与样式详解

在日常的终端操作中,我们常常会看到带颜色或特殊样式的输出,这些效果大多是通过 ANSI 转义序列 实现的。本文将详细介绍常用的颜色与样式参数,以及它们的使用方法。 什么是 ANSI 转义序列 ANSI 转义序列是一种在终端中控制文本显示样式的标准方法,通过特定的转义码(Escape Sequence...

YAML 教程

1. YAML 简介 YAML(YAML Ain't Markup Language)是一种简洁易读的数据序列化格式,广泛用于配置文件、数据存储等场景。它支持键值对、列表、嵌套结构,易于阅读和编辑。 2. YAML 语法基础 2.1 键值对 YAML 采用 key: value 形式表示键值对,冒号...

logrotate切割nginx日志

环境: Ubuntu18.04 logrotate是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为“转储”。可以根据日志的大小,或者根据其使用的天数来转储,这个过程一般由cron来执行。 logrotate还可以用于压缩日志文件,以及发送日志到指定的email。 ...

Python 开发模式安装

在Python开发中,"开发模式安装"(也被称作“可编辑模式安装”)是一种特殊的安装方式,它允许开发者在不重新安装包的情况下,对代码进行修改并立即看到这些更改的效果。这在开发和调试自定义Python包时非常有用。 如何进行开发模式安装 可以通过以下命令进行开发模式安装: pip install -e...

Let's Encrypt 配置Nginx SSL证书

以下文章展示了在 Ubuntu(以 20.04 为例)上,通过 APT 安装 Certbot 并使用 --nginx 插件,一步完成 Let’s Encrypt 证书的获取、安装与自动续期的全过程。全文共分为五大部分,每部分都配有实用命令示例和丰富引用,帮助您快速上手并在生产环境中稳定运行。 在本文...

utf8mb4和utf8

utf8 和 utf8mb4 都是 MySQL 中的字符集(Character Set),用于存储和处理文本数据。但它们之间有一些重要的区别,尤其是在支持字符范围和编码方式上。 1. 编码范围的区别 utf8: 在 MySQL 中,utf8 实际上是一个不完整的 UTF-8 编码实现。它最多只能表示...

Python 模块 tenacity

简介 在实际应用中,经常会碰到在web请求时,因为网络的不稳定,会有请求超时的问题,这时候,一般都是自己去实现重试请求的逻辑,直到得到响应或者超时。虽然这样的逻辑并不复杂,但是代码写起来却不那么优雅,不那么pythonic。 tenacity是一个重试库,使用python语言编写,它能够让我们在任务...

vscode运行Flask项目

1.激活虚拟环境 假设有一个flask项目,使用venv虚拟环境。 ctrl+shift+p,调出命令,选择如下Python: Select interpreter 选择之后,弹出选择环境的对话框 选择对应的虚拟环境即可。 在打开一个py文件后,vscode的状态栏会显示当前项目的虚拟环境信息 2....

maven命令行操作

maven命令行操作 打包 maven清除之后打包 -Dmaven.test.skil=true 不执行测试 -P prod 指定打包环境为prod mvn clean package -Dmaven.test.skip=true -P prod 查看当前处于激活状态的profile mvn hel...

MyBatis

MyBatis版本 2.2.0 if test判断条件 大于小于判断 ----!= gte 小于等于, <=(会报错 相关联的 \"test\" 属性值不能包含 \'<\' 字符)|...

如何使用 qpdf 工具消除 PDF 文件的权限限制

如何使用 qpdf 工具消除 PDF 文件的权限限制 PDF 文件是一种常见的文档格式,广泛用于电子书、手册、合同等多种场景。为了保护文件的版权或避免内容被非法复制,许多 PDF 文件会设置权限限制,如禁止复制、打印或编辑。这些限制通常通过 PDF 的加密机制实现。qpdf 是一个开源工具,可以用来...

Ubuntu22.04 命令行操作蓝牙设备

命令行连接蓝牙设备 系统 Ubuntu22.04 1. 安装蓝牙管理工具 sudo apt-get update sudo apt-get install bluez 2.确认蓝牙服务状态 sudo systemctl status bluetooth 如果服务没有运行,使用以下命令启动它 sudo...

MySQL source命令导入sql文件太慢

有一个较大的SQL文件,通过source命令导入到MySQL数据库中时导入太慢。 存储引擎选择的时Innodb MySQL版本为8.0.34 解决办法 1.设置ulimit ulimit -n //默认是1024 指定同一时间最多可开启的文件数 65535 vim /etc/security/lim...

世界顶级7大学习法工具:费曼学习法、番茄学习法、西蒙学习法、SQ3R学习法、康奈尔笔记法、模式学习法、社群学习法

自人类文明的曙光照亮地球那一刻,工具就一直陪伴着我们。 石器时代、铁器时代、机器时代、信息化时代,工具解放了人类的双手,实现了物质→能量→信息的三重跨越。 正如《技术史》一书中指出:“工具引领人类历史,成为重要的推动力和分水岭。” 1.费曼学习法 1.1 什么是费曼学习法? 把你学的东西,讲给别人听...

Windows Docker Desktop开发API端口2375用于远程调用

Docker Desktop 是 Windows 用户开发和管理容器的强大工具,但默认设置下仅允许本地访问 API 端口 2375。 1. 启用 IP Helper 服务 打开服务管理器,找到 IP Helper 服务,将其启动类型设置为自动并启动服务。 2. 配置 Docker 开放 2375 端...