- 在上一篇 FastAPI 入门教程中,我们已经学会了如何创建 Web API、定义路由和处理请求参数。不过,如果数据只保存在 Python 的内存字典中,应用重启后数据就会丢失,无法满足真实项目的需求。因此,本文将进一步介绍如何使用 FastAPI 连接 MySQL 数据库,通过 SQLAlchemy 2.0 实现完整的 CRUD 操作,并使用 Pydantic 进行数据校验。完成本教程后,... 在上一篇 FastAPI 入门教程中,我们已经学会了如何创建 Web API、定义路由和处理请求参数。不过,如果数据只保存在 Python 的内存字典中,应用重启后数据就会丢失,无法满足真实项目的需求。因此,本文将进一步介绍如何使用 FastAPI 连接 MySQL 数据库,通过 SQLAlchemy 2.0 实现完整的 CRUD 操作,并使用 Pydantic 进行数据校验。完成本教程后,...
- 项目 A 要 requests 2.25、项目 B 要 2.31怎么办?这篇讲清 Python 官方 venv 的创建、激活、依赖固化(requirements.txt)与 VS Code 解释器配置,附 macOS ensurepip 报错的解法,帮你迈过 Python 工程化第一课。 项目 A 要 requests 2.25、项目 B 要 2.31怎么办?这篇讲清 Python 官方 venv 的创建、激活、依赖固化(requirements.txt)与 VS Code 解释器配置,附 macOS ensurepip 报错的解法,帮你迈过 Python 工程化第一课。
- print 调试在小程序里够用,一旦程序跑在后台、跑在别人的机器上就会失灵。本文讲清 Python logging 的五个级别、basicConfig 上手方法、控制台与文件双输出,以及 Logger、Handler、Formatter 三件套,并列出重复输出、级别设错等四个常见坑,附一个可直接复用的日志模板。 print 调试在小程序里够用,一旦程序跑在后台、跑在别人的机器上就会失灵。本文讲清 Python logging 的五个级别、basicConfig 上手方法、控制台与文件双输出,以及 Logger、Handler、Formatter 三件套,并列出重复输出、级别设错等四个常见坑,附一个可直接复用的日志模板。
- 本文介绍如何基于Python标准库re模块,利用正则表达式命名捕获组与finditer迭代器构建确定性轻量词法分词器,讲解模式拼接与兜底匹配机制。 本文介绍如何基于Python标准库re模块,利用正则表达式命名捕获组与finditer迭代器构建确定性轻量词法分词器,讲解模式拼接与兜底匹配机制。
- 用 Python 与 Redis 的固定窗口计数实现轻量级接口限流:讲清限流维度、原子计数与过期策略、装饰器收敛、窗口边界突刺与误伤风险,以及上线前必须验证的并发、过期与兜底三件事。 用 Python 与 Redis 的固定窗口计数实现轻量级接口限流:讲清限流维度、原子计数与过期策略、装饰器收敛、窗口边界突刺与误伤风险,以及上线前必须验证的并发、过期与兜底三件事。
- 用 Python 标准库读取 JSONL 请求日志,校验状态码与耗时,统计 5xx 错误率和 nearest-rank P95 延迟;附可运行脚本、样例输出与统计口径说明。 用 Python 标准库读取 JSONL 请求日志,校验状态码与耗时,统计 5xx 错误率和 nearest-rank P95 延迟;附可运行脚本、样例输出与统计口径说明。
- 一、前言在日常工作和学习中,我们经常需要处理大量文件,例如文件重命名、分类整理以及批量修改文件信息。如果完全依靠手动操作,不仅耗费时间,还容易出现错误。Python作为一种简单易学的编程语言,可以帮助我们完成许多重复性工作。二、Python自动化的优势Python具有语法简单、开发效率高、第三方库丰富等特点。在日常办公中,可以利用Python实现:批量修改文件名称。自动整理不同类型的文件。批... 一、前言在日常工作和学习中,我们经常需要处理大量文件,例如文件重命名、分类整理以及批量修改文件信息。如果完全依靠手动操作,不仅耗费时间,还容易出现错误。Python作为一种简单易学的编程语言,可以帮助我们完成许多重复性工作。二、Python自动化的优势Python具有语法简单、开发效率高、第三方库丰富等特点。在日常办公中,可以利用Python实现:批量修改文件名称。自动整理不同类型的文件。批...
- 为什么需要并发 写爬虫、批量请求接口、读写文件时,程序常常不是在计算,而是在“等”。等网络响应、等磁盘读写。单线程顺序执行时,这些等待时间都被白白浪费。并发就是让程序在等待的时候去做别的事,从而缩短总耗时。Python 里最常用的两种并发方式是 threading(线程)和 asyncio(异步),它们各有适用场景。线程:适合 I/O 密集任务threading 让多个线程在同一个进程里交替... 为什么需要并发 写爬虫、批量请求接口、读写文件时,程序常常不是在计算,而是在“等”。等网络响应、等磁盘读写。单线程顺序执行时,这些等待时间都被白白浪费。并发就是让程序在等待的时候去做别的事,从而缩短总耗时。Python 里最常用的两种并发方式是 threading(线程)和 asyncio(异步),它们各有适用场景。线程:适合 I/O 密集任务threading 让多个线程在同一个进程里交替...
- 数据工程构建数据基础设施。涵盖 ETL 流程(Airflow/Prefect)、数据湖(Delta Lake/Iceberg)、数据仓库(ClickHouse/DuckDB)、流处理(Kafka/Flink)、批处理(Spark/PySpark)、数据质量(Great Expectations)、数据血缘、数据治理。 数据工程构建数据基础设施。涵盖 ETL 流程(Airflow/Prefect)、数据湖(Delta Lake/Iceberg)、数据仓库(ClickHouse/DuckDB)、流处理(Kafka/Flink)、批处理(Spark/PySpark)、数据质量(Great Expectations)、数据血缘、数据治理。
- 一台开发机也值得有晨检很多同学的 Linux 开发机上同时跑着数据库、缓存和几个试验容器。编排平台的告警还没接上时,最省事的办法不是再装一套监控,而是每天用一段很短的 Python 问 Docker 三个问题:谁在跑,谁异常退出,谁在反复重启。 只问三个问题第一,当前运行中的容器有哪些。第二,已经退出的容器里,哪些退出码不是 0。第三,有没有容器的重启次数在悄悄增加。这三个问题覆盖了早上看... 一台开发机也值得有晨检很多同学的 Linux 开发机上同时跑着数据库、缓存和几个试验容器。编排平台的告警还没接上时,最省事的办法不是再装一套监控,而是每天用一段很短的 Python 问 Docker 三个问题:谁在跑,谁异常退出,谁在反复重启。 只问三个问题第一,当前运行中的容器有哪些。第二,已经退出的容器里,哪些退出码不是 0。第三,有没有容器的重启次数在悄悄增加。这三个问题覆盖了早上看...
- 很多人写完一个 Python 小服务(比如定时抓数据的脚本、一个 Flask 接口),第一反应是用 nohup python app.py & 丢到后台。这样能跑,但问题不少:进程挂了没人拉起,服务器重启后要手动再启动,日志散落在 nohup.out 里难以查找。其实主流 Linux 发行版都自带 systemd,用它来托管 Python 程序,只需要写一个十几行的配置文件。一、准备工作假设... 很多人写完一个 Python 小服务(比如定时抓数据的脚本、一个 Flask 接口),第一反应是用 nohup python app.py & 丢到后台。这样能跑,但问题不少:进程挂了没人拉起,服务器重启后要手动再启动,日志散落在 nohup.out 里难以查找。其实主流 Linux 发行版都自带 systemd,用它来托管 Python 程序,只需要写一个十几行的配置文件。一、准备工作假设...
- 为什么要自己写一个 TTL 缓存在服务里我们经常需要把一些“一段时间内有效”的结果缓存起来,比如鉴权结果、配置、第三方接口返回。直接用 dict 会无限增长,引一个完整缓存组件又偏重。其实用标准库的 OrderedDict 加单调时钟,几十行就能得到一个带过期时间(TTL)和容量上限(LRU 淘汰)的小缓存。设计要点1)容量上限:用 OrderedDict 记录插入/访问顺序,超限时淘汰最久... 为什么要自己写一个 TTL 缓存在服务里我们经常需要把一些“一段时间内有效”的结果缓存起来,比如鉴权结果、配置、第三方接口返回。直接用 dict 会无限增长,引一个完整缓存组件又偏重。其实用标准库的 OrderedDict 加单调时钟,几十行就能得到一个带过期时间(TTL)和容量上限(LRU 淘汰)的小缓存。设计要点1)容量上限:用 OrderedDict 记录插入/访问顺序,超限时淘汰最久...
- 报错别从第一行读起,先看最后一行定问题,再往上找自己文件里的行号,改一处跑一次。 报错别从第一行读起,先看最后一行定问题,再往上找自己文件里的行号,改一处跑一次。
- 环境变量都是字符串,不能用 bool("false") 解析布尔配置。本文使用 Python 标准库集中处理默认值、空值、类型转换和范围校验,并通过字典测试,在应用启动阶段尽早发现错误配置。 环境变量都是字符串,不能用 bool("false") 解析布尔配置。本文使用 Python 标准库集中处理默认值、空值、类型转换和范围校验,并通过字典测试,在应用启动阶段尽早发现错误配置。
- RDS for MySQL 入门本文介绍在华为云创建 RDS for MySQL 实例并用 Python 连接的流程。 1. 创建实例前的准备RDS 实例要与 ECS 放在同一区域、同一 VPC,用内网地址访问,延迟最低且无需开放公网。学习阶段选择按需计费的最小通用规格,数据库版本选 MySQL 8.0,字符集使用 utf8mb4。 2. 创建实例控制台进入“云数据库 RDS”,点击“购买... RDS for MySQL 入门本文介绍在华为云创建 RDS for MySQL 实例并用 Python 连接的流程。 1. 创建实例前的准备RDS 实例要与 ECS 放在同一区域、同一 VPC,用内网地址访问,延迟最低且无需开放公网。学习阶段选择按需计费的最小通用规格,数据库版本选 MySQL 8.0,字符集使用 utf8mb4。 2. 创建实例控制台进入“云数据库 RDS”,点击“购买...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签