自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(279)
  • 资源 (1)
  • 收藏
  • 关注

原创 Flask 路由跳转机制:url_for生成动态URL、redirect页面重定向

在 Flask 开发中,url_for() 和 redirect() 是实现路由跳转的关键工具。url_for() 用于根据视图函数名动态生成 URL,支持静态路径、动态参数、查询参数、绝对路径和锚点等功能,避免硬编码,提高代码维护性。redirect() 则用于生成重定向响应,引导客户端跳转到指定 URL,支持多种 HTTP 状态码(如 302、301、303、307),适用于不同场景。两者结合使用,可以优雅地实现页面跳转逻辑,确保代码的灵活性和可维护性。例如,在用户登录后,通过 redirect(url

2025-05-22 11:32:22 1281

原创 Flask 路由装饰器:从 URL 到视图函数的优雅映射

Flask 的路由装饰器 @app.route 是 Flask 框架中用于将 URL 路径与视图函数绑定的核心工具。它通过 app.add_url_rule() 方法将 URL 规则注册到 url_map 中,并在请求处理阶段通过 url_map 匹配 URL 并执行相应的视图函数。路由装饰器支持静态路径、动态参数捕获、多种 HTTP 方法以及通过蓝图(Blueprints)实现模块化路由管理。这些功能使得 Flask 能够优雅地处理复杂的 URL 映射,适用于从简单页面到大型项目的各种场景。

2025-05-21 21:15:15 1463

原创 Python 装饰器:从“语法糖”到“代码神器”的深度解析

Python装饰器是一种高阶函数,通过@语法糖在不修改原函数代码的情况下为其添加额外功能。其核心机制是高阶函数+闭包,典型应用包括日志记录、性能监控和权限校验等。装饰器可实现三层嵌套以接收参数,或通过类装饰器管理状态。使用时需注意保留原函数的元信息,推荐使用functools.wraps。装饰器能有效解耦非核心功能,提升代码复用性和可维护性。<|end▁of▁sentence|>

2025-05-21 17:47:25 1065

原创 深入理解 Python 的with语法:资源管理的优雅解决方案

with语法在Python中用于自动管理资源,如文件、数据库连接和线程锁,通过上下文管理器协议(__enter__和__exit__方法)确保资源的正确释放。相比传统的try-finally,with更简洁且安全,避免资源泄漏。常见应用场景包括文件操作、数据库连接和线程锁管理。此外,开发者可以通过自定义类或使用contextlib模块创建上下文管理器,灵活应对各种资源管理需求。使用with时需注意避免滥用,确保其仅用于需要显式释放的资源,并遵循单一职责原则。

2025-05-21 16:21:20 1021

原创 Flask-SQLAlchemy核心概念:模型类与数据库表、类属性与表字段、外键与关系映射

本文介绍了如何在 Flask 应用中使用 Flask-SQLAlchemy 进行数据库操作,重点讲解了模型类与数据库表的映射关系、类属性与表字段的对应关系,以及外键与关系映射的实现。通过代码示例,展示了如何定义模型类、配置数据库连接,并使用 db.create_all() 创建数据库表。文章还详细解释了 db.Column 的用法,包括字段类型

2025-05-21 10:11:15 1311

原创 Python 中的类属性与实例属性详解

在 Python 面向对象编程中,类属性和实例属性是两个关键概念,分别用于描述类本身的状态和对象特有的状态。类属性定义在类体中,所有实例共享,通常用于存储通用信息,如类型或计数器。实例属性则在 __init__ 方法中通过 self 定义,每个实例独立拥有,用于描述对象自身的状态。类属性通过类名或实例访问,而实例属性必须通过对象访问。需要注意的是,实例属性可以覆盖同名的类属性,形成实例独有的副本。正确理解和使用这两种属性,有助于编写清晰、健壮的代码。

2025-05-20 18:10:47 815

原创 深入理解 Python 中的几种方法:实例方法、类方法、静态方法与特殊方法

Python 中的方法主要分为四类:实例方法、类方法、静态方法和特殊方法。实例方法是最常见的类型,通过 self 访问和修改实例属性,适用于对象特有的行为。类方法使用 @classmethod 装饰器,通过 cls 访问类属性,常用于工厂方法。静态方法使用 @staticmethod 装饰器,不依赖类或实例状态,适合作为工具函数。特殊方法(魔术方法)以双下划线开头和结尾,用于实现对象的内置行为,如运算符重载和容器协议。合理使用这些方法可以提高代码的封装性和可读性。

2025-05-20 17:54:12 1949

原创 深入解析`lsof`命令:查看系统中打开文件与进程信息

lsof(List Open Files)是一个强大的工具,用于查看系统中哪些进程正在访问哪些文件。它不仅限于常规文件,还包括网络连接、设备文件和管道等。lsof的输出包含多个字段,如COMMAND、PID、USER、FD、TYPE等,提供了详细的文件访问信息。常见用法包括查看所有打开的文件、特定进程打开的文件、特定文件被哪些进程打开、网络端口的使用情况、特定用户打开的文件以及特定目录下所有打开的文件。lsof在定位占用端口的进程、查找正在访问的文件、审计网络连接和调试文件系统等场景中非常有用。

2025-05-19 21:28:11 1087

原创 Logrotate:配置日志轮转、高效管理Linux日志文件

Logrotate 是 Linux 系统中用于自动化管理日志文件的工具,主要功能包括日志轮转、压缩、删除和保留策略配置。它通过 Cron 作业定期执行,也可手动触发。配置文件通常位于 /etc/logrotate.conf 和 /etc/logrotate.d/ 目录下,支持多种指令如 daily、rotate、compress 等,用于定义日志轮转的频率、保留数量和压缩方式。Logrotate 还支持 postrotate 脚本,用于在轮转后执行特定操作,如重新加载服务。最佳实践包括合理配置轮转策略、使用

2025-05-19 18:05:13 1532

原创 模型蒸馏(Knowledge Distillation)

是一种深度学习中的模型压缩技术,其核心思想是将大型、复杂模型(教师模型)所学到的知识迁移到较小、结构简单的模型(学生模型)中,从而在保持性能的同时,降低计算和存储成本。

2025-05-19 14:55:55 637

原创 Flask-SQLAlchemy_数据库配置

SQLAlchemy是 Python 生态中最具影响力的 ORM(对象关系映射)库,其设计理念强调 “框架无关性”,支持在各类 Python 项目中独立使用,包括 Flask、Django 等 Web 框架,以及脚本工具、数据处理程序等。作为SQLAlchemy这种分层设计使开发者既能享受 SQLAlchemy 的强大功能,又能遵循 Flask 的开发范式。

2025-05-18 15:02:38 1813

原创 Python包、模块、类的导入语法与机制解析

本文介绍了Python中的核心概念(模块、包、类)以及导入语法的常见用法。模块是单个.py文件,包是包含多个模块的目录,类是模块或包中的代码结构。导入语法通过from...import...将其他模块或包中的代码对象加载到当前命名空间。常见的导入方式包括直接导入模块或包、导入时重命名、从源中导入特定对象、导入多个对象以及导入所有对象(不推荐)。此外,文章还解释了导入的优先级机制,包括内置模块、当前目录、环境变量PYTHONPATH和标准库目录,并介绍了sys.path的作用,它存储了模块搜索的路径。

2025-05-15 16:05:14 1149

原创 Ubuntu磁盘空间分析:du命令及常用组合

du(Disk Usage)是 Ubuntu 系统中用于查看目录或文件磁盘使用情况的命令,主要用于分析磁盘空间占用。其基本语法为 du [选项] [目录/文件路径],常用选项包括 -h(人性化显示大小)、-s(仅显示总大小)、-d(控制递归深度)、--exclude(排除特定文件或目录)等。du还可以与其他命令结合使用,如 sort 按大小排序、find 统计特定类型文件大小、watch 实时监控目录变化等。通过这些组合,用户可以快速定位大文件、比较目录大小、排除干扰文件等,从而高效管理磁盘空间。

2025-05-14 18:29:09 1317

原创 什么是SQL注入?如何避免数据库被黑客攻陷?

SQL 注入是一种常见的安全漏洞,攻击者通过篡改用户输入,将恶意 SQL 代码注入到数据库查询中,从而执行非预期操作,如数据泄露、篡改或数据库崩溃。其核心原因是程序未对用户输入进行过滤或转义,直接将输入拼接到 SQL 语句中。典型示例包括绕过登录接口、获取敏感数据或删除数据库表。防范措施包括使用参数化查询、ORM 工具、输入验证与转义,以及遵循最小权限原则。开发中应始终避免信任用户输入,确保安全编码。

2025-05-12 14:38:27 985

原创 主流编程语言中ORM工具全解析

ORM(对象关系映射)工具旨在简化数据库操作,不同编程语言有各自的主流ORM工具。Python生态中,SQLAlchemy功能全面,适合中大型项目;Django ORM与Django框架深度集成,适合快速开发;Peewee轻量级,适合小型项目;Tortoise-ORM专为异步框架设计。Java生态中,Hibernate功能强大,适合企业级应用;MyBatis更接近原生SQL,适合性能敏感项目;Spring Data JPA与Spring框架深度集成。Node.js生态中,Sequelize支持多种数据库,适

2025-05-12 11:15:54 1440

原创 Linux文件权限管理:chmod修改权限 与 chown修改所有者

`chmod` 命令:修改文件/目录权限 `chmod`(Change Mode)用于修改文件或目录的权限。> `chmod`控制“谁能做什么”。

2025-05-04 21:31:58 1810

原创 pip安装包时网络不畅,替换国内PyPI镜像源

是对官方仓库的复制。PyPI 是 Python 社区中最大的软件包仓库,存储着大量的 Python 包,供开发者们下载和使用。然而,由于 PyPI 服务器位于国外,在国内访问时可能会面临网络延迟高、下载速度慢等问题。为了解决这些问题,一些国内的高校、企业或者组织会定期从 PyPI 官方仓库同步软件包数据,创建自己的镜像源。

2025-05-04 18:31:56 885

原创 Ubuntu环境下使用uWSGI服务器【以flask应用部署为例】

由于从Python 3.11开始限制了在系统级 Python 环境中使用 pip 安装第三方包,以避免与系统包管理器(如 apt)产生冲突。所以开发时选择使用虚拟环境。

2025-05-04 17:51:17 1644

原创 Ubuntu环境下如何管理系统中的用户:创建用户、删除用户、修改密码、切换用户、用户组管理

主要是按提示输入密码和用户信息(可直接回车使用默认配置)。(组内无用户时才能删除)passwd 用户名。,按提示输入新密码。

2025-05-02 17:41:45 1162

原创 Linux系统中的用户分类(为什么Linux系统中有很多我没有创建的用户?)

使用lslogins查看当前系统中的用户,如下图:看到了很多用户,但是我没有去创建这些用户,这些用户是怎么来的?

2025-05-02 17:00:55 631

原创 Linux_sudo命令的使用与机制

`sudo`(全称 `superuser do`)是 Linux/Unix 系统中**权限管理**的核心工具。允许普通用户在授权下以其他用户(默认是 `root`)的权限执行命令,而无需直接登录账户。

2025-05-02 15:42:05 1616

原创 Linux_su命令

su)用于直接切换用户身份,进入目标用户的 shell 环境。

2025-05-02 11:00:29 1179

原创 WSGI(Web Server Gateway Interface)服务器

WSGI 服务器是实现了 WSGI 规范 的软件。客户端 <---> Web 服务器 <---> WSGI 服务器 <---> Python Web 应用程序客户端发起请求Web 服务器接收后转发给 WSGI 服务器WSGI 服务器接收请求并传递给 Python 应用程序处理Python 应用程序再将处理后的响应返回给 Web 服务器最后由 Web 服务器将响应发送给客户端。

2025-05-01 14:36:24 1261

原创 正向代理、反向代理机制与 Windows和Linux系统代理设置

代理 是一种位于客户端和目标服务器之间的中间服务器。

2025-04-30 11:12:13 1746

原创 关于网络端口的介绍

在网络通信中,用于标识不同计算机,则标识同一计算机上的不同应用程序或服务。数据传输时,端口号能让计算机将数据精准发送至对应程序,确保各应用同时进行网络交互且互不干扰。

2025-04-29 18:30:37 1246

原创 使用pip3安装软件包报错`externally-managed-environment`的几种解决方式

报错的原因:从开始引入了PEP 668规范,该规范限制了在系统级 Python 环境中使用 pip 安装第三方包,以避免与系统包管理器(如 apt)产生冲突。

2025-04-29 15:16:53 2110

原创 创建Python虚拟环境

虚拟环境是一个完全独立的 Python 环境,它拥有自己独立的 Python 解释器、Python 包和依赖库。

2025-04-29 14:20:00 1645

原创 在Ubuntu中安装python

在这些新版本系统中,Python 3 是主要支持的 Python 版本,要安装 Python 3 需使用具体的包名,如。从 Ubuntu 18.04 开始,系统默认不再安装 Python 2,并且。命令时,系统会安装 Python 2,而不是 Python 3。都不会自动下载 Python 3,你得明确指定安装。这个包默认对应的是 Python 2.x 版本。综上所述,无论是旧版还是新版 Ubuntu 系统,若还需要安装 Python 3 的包管理工具。可以安装 Python 3。命令,系统会提示找不到。

2025-04-29 10:32:17 1864

原创 Nginx配置文件介绍

Nginx 的配置文件是模块化的,不同的配置文件承担着不同的功能,下面为你详细介绍常见的配置文件及其作用:这些文件在。

2025-04-27 22:06:18 1443 1

原创 MIME 类型是个什么东西?

MIME 类型(Multipurpose Internet Mail Extensions)即多用途互联网邮件扩展类型,它是一种标准,用于表示文档、文件或字节流的性质和格式。最初设计用于电子邮件系统,后来。

2025-04-27 22:04:01 769

原创 Nginx的默认主配置文件 “/etc/nginx/nginx.conf“ 解读

【代码】Nginx的默认主配置文件 "/etc/nginx/nginx.conf" 解读。

2025-04-27 18:31:53 1220

原创 在 Ubuntu 24.04 系统上安装和管理 Nginx

执行该命令后,系统会自动下载并安装Nginx及其依赖项。安装过程中,系统可能会提示你确认是否继续安装,输入。在安装新软件之前,需要先更新系统的软件包列表,确保获取到最新的软件包信息。通过以上步骤,你就可以在Ubuntu 24.04系统上成功安装并管理Nginx服务了。这个命令会连接到Ubuntu的软件源服务器,下载最新的软件包索引。更新软件包列表之后,就可以安装Nginx了。

2025-04-27 16:18:53 1815

原创 在VSCode中使用Doxygen插件注释代码 + Doxygen GUI生成API文档

Doxygen是用来根据代码中注释生成标准API文档的一种方式。

2025-04-11 10:16:30 2717

原创 项目代码的构建

构建指的是、库文件或者其他输出成果的过程。其他输出成果:打包为安装包、自动生成API应用文档、便于在不同服务器上快速部署的Docker镜像等;

2025-03-22 20:27:19 579

原创 ESP32_任务看门狗超时,根据backtrace追溯具体原因及几种解决方式

这一段是说明情况,提到的信息包括:看门狗触发了超时事件,CPU0的IDLE进程没有及时喂狗,系统中的任务有哪些,当前正在运行的任务是什么。

2025-03-18 21:45:27 1616

原创 ESP32中的内存架构

分为 SRAM0、SRAM1、SRAM2、RTC快速存储器、RTC慢速存储器,一共5个部分。

2025-03-18 18:03:15 1561

原创 嵌入式代码执行时的map映射段、load加载段

总结来说,map段是CPU直接"看"到FLASH中的内容,而load段是FLASH内容的"拷贝"到RAM中使用,两者的区别源于数据是否需要修改以及系统对资源的优化策略。这些段通常包含需要修改的数据(如全局变量、静态变量),因为FLASH是只读的,必须通过RAM进行读写操作。这样CPU可以像访问RAM一样直接执行FLASH中的代码(即XIP技术,Execute-In-Place)。:无需从FLASH复制到RAM,节省RAM空间,但FLASH的读取速度通常慢于RAM。:占用RAM空间,但数据访问速度更快。

2025-03-18 12:53:51 293

原创 RNG 随机数生成器

RNG即随机数生成器(Random Number Generator),是一种能够产生随机数的设备或算法。随机数在众多领域都有着至关重要的作用,以下将从基本概念、分类、工作原理、应用场景以及面临的挑战几个方面详细介绍RNG。

2025-03-18 11:16:57 2130

原创 Yolov8_使用自定义数据集训练模型1

收集图片:收集一批带有目标物体的图片【images文件夹下.png图片】标注目标物体:使用标注工具对图片中的目标物体进行标注【xml_labels文件夹下.xml文件】划分数据集:将整个数据集按一定比例分为训练集、验证集、测试集【使用split_dataset.py脚本生成split_dataset_txt文件夹中的.txt文件,.txt文件内容是不含后缀.xml的文件名】

2024-01-17 18:03:27 2391 1

原创 Jetson_yolov8_解决模型导出.engine遇到的问题、使用gpu版本的torch和torchvision、INT8 FP16量化加快推理

虽然我确认刚才选择的torch和torchvision版本是匹配的,而且在【3.2.4】小节也实际打印出了版本符合要求,但还是提示不兼容,这就想到了【3.2.2、安装torch v2.1.0】时产生的报错,可能系统使用的是没卸载干净的torchvision v0.16.2,于是使用pip list再次查看,果然torchvision版本是v0.16.2.于是再次卸载torchvision,注意指定版本0.16.2,因为刚才还安装了0.16.1.

2024-01-12 20:24:03 5500 15

从视频中提取音频的软件,AudioExtractor64,无需安装,打开即用

从视频中提取音频的软件,AudioExtractor64,无需安装,打开即用

2025-10-24

STM32F10x大中小容量启动文件.zip

STM32F10x小容量启动文件,文件名"startup_stm32f10x_ld.s"; STM32F10x中容量启动文件,文件名"startup_stm32f10x_md.s"; STM32F10x大容量启动文件,文件名"startup_stm32f10x_hd.s";

2020-08-06

空空如也

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

TA关注的人

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