Python 树结构

Python实现树结构的例子 class ActionNode: children: dict[str, "ActionNode"] 简要解释如下: - children: dict[str, "ActionNode"]: - children 是一个字典属性。 - 字典的键 (key) 是字符串 ...

Docker基本操作

根据镜像ID进入对应容器 docker run --rm -it --entrypoint /bin/bash 镜像Id 批量删除已经停止的容器 docker rm $(docker ps -a -f status=exited -q) 这个命令使用docker ps -a -f status=ex...

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

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

HTTP状态码

HTTP状态码分类 HTTP状态码列表 ------------ Switching Protocols 200 已接受。已经接受请求,但未处理完成 No Content 206 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择Found 304...

修改SSH端口

1. 修改ssh配置文件 vim /etc/ssh/sshd_config 找到或者加上一行 Port {num} 比如 Port 23456 2. 重启服务 service sshd restart 或者 systemctl restart sshd.service...

vscode运行Flask项目

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

MyBatis

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

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

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

OpenAI API prompt的最佳实践

OpenAl发布的提示工程指南说明了如何更有效地利用像如GPT-4这样的大语言模型(有时候也叫GPT模型)来获得更好的结果。 介绍的方法可以相互结合,以发挥更大的作用。 另外,这份指南的示例主要针对 GPT-4 模型,但理论上来说也适用其他模型。 其中主要有六个策略,每个策略下再有具体的技巧。 策略...

数据库架构师怎样设计产品的数据库?

设计产品数据库是数据库架构师的重要职责之一。以下是数据库架构师设计产品数据库的常见方法、步骤以及使用的工具: 一、方法与步骤 1. 需求分析 理解业务需求:与业务方、产品经理、开发团队沟通,明确功能需求、非功能需求(如性能、安全性、可扩展性等)。 确定数据需求:确定需要存储和管理的数据类型、数据量、...

Python 单例模式

Python使用单例模式时,可以创建一个Singleton类,所有继承Singleton的子类,都为单例模式 class Singleton(abc.ABCMeta, type): """ Singleton metaclass for ensuring only one instance of a...

Python 开发模式安装

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

FastAPI 中的 embed 参数详解

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

ReAct

ReAct 是一种结合了推理和动作的人工智能代理架构,旨在增强大型语言模型(如GPT-4)的能力,使其在解决复杂问题时能够进行更有效的推理和执行相应的动作。ReAct 的名称源自 "Reasoning and Acting"(推理与行动)的缩写。 ReAct 的主要特点和优势包括: 结合推理和行动:...

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

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

uv、poetry、 pip 全面对比 & uv 实操手册

一次搞清楚三套工具的定位、优缺点、典型工作流,并附上 uv 详细操作命令。 1. 一句话定位 uv:Rust 实现的“全家桶”——包管理 + 虚拟环境 + 解析锁定 + 运行命令 + Python 版本管理,全都要,还巨快。 poetry:偏“项目管理器”,围绕 pyproject.toml 做依赖...

RabbitMQ安装(Ubuntu)

Ubuntu 20.04 Rabbitmq 3.8.3 Erlang 22.27 1.安装erlang 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令: sudo apt-get install erlang-nox # 安装erlang e...

MySQL 存储过程

前言 在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢? 在真实的业务场景中,往往一张表的数据关联的业务是多样的,举例来说,用户在页面上完成一个订单,对服务端来说,与这个订单相关的业务还有很多,比如生成一条出库记录,扣减库存,用...

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

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

pip升级所有包

pip升级全部包 pip install --upgrade pip pip freeze --local xargs -n1 pip install -U 这些命令将首先升级pip本身,然后使用pip freeze命令列出当前安装的所有包,并使用xargs和pip install命令逐个更新这些包...