- 博客(70)
- 资源 (1)
- 收藏
- 关注
原创 FastAPI:(14)静态文件,测试
本文介绍了FastAPI中的静态文件处理和测试方法。主要内容包括: 静态文件挂载:使用app.mount()方法将静态文件目录或子应用挂载到指定路径,实现路径隔离且不影响主应用逻辑。正例展示了如何挂载静态文件夹和子应用,反例则揭示挂载到根路径的潜在问题。 静态文件特性:静态文件无需后台处理、内容固定、支持高效缓存,并可直接映射URL访问。通过实例演示了静态资源服务和上传文件处理。 测试分类:涉及端到端测试、单元测试和集成测试,为应用质量提供保障。 文中强调合理挂载的重要性,并提供了官网子应用文档的访问示例,
2025-06-16 22:35:16
704
原创 FastAPI:(13)后台任务,元数据,文档URL
本文介绍了FastAPI中的三个核心功能:后台任务、元数据和文档URL。后台任务功能允许异步执行耗时操作(如邮件发送、日志记录)而不阻塞主请求流程,通过BackgroundTasks类实现。元数据功能用于增强API文档的组织和描述性。文档URL则提供了自定义API文档路径的能力。文章通过具体实例展示了后台任务的正确使用方式(如邮件发送、日志记录)和常见误用场景(如数据库查询),并强调了其异步非阻塞的特性。同时说明了BackgroundTasks的底层实现来自Starlette框架,并提示了复杂后台任务可考虑
2025-06-16 22:34:38
688
原创 FastAPI:(12)更大的应用(APIRouter)
这篇文章介绍了FastAPI中构建大型应用的模块化方法,重点讲解了APIRouter的使用和项目结构设计。主要内容包括: 项目文件结构的最佳实践,如分层设计(MVC模式)和模块化组织,通过示例展示了用户管理模块和微服务的结构设计。 APIRouter的核心特性及优势:模块化路由管理、可重用性和集中式管理,通过用户管理和AI模型接口的正例演示了APIRouter的封装方法。 反例分析:单文件编码所有接口的缺点,如模块化缺失和维护困难。 文章强调合理的项目结构和APIRouter使用能提高代码可维护性、可扩展性
2025-06-16 22:34:02
843
原创 FastAPI:(11)SQL数据库
本文介绍了如何在FastAPI中使用SQLModel进行SQL数据库操作。SQLModel结合了SQLAlchemy的ORM功能和Pydantic的数据验证特性,支持双重用途(数据库表结构与API模型)、类型注解、自动生成表结构等。文章通过电子病历模型和商品库存模型展示了SQLModel的正向应用案例,同时用天气服务API模型作为反例说明其适用边界。主要内容包括SQLModel安装、单一模型创建流程(模型定义、引擎创建、表生成、会话管理等),并提供了代码示例演示Hero模型的完整CRUD操作流程。SQLMo
2025-06-16 22:33:25
1184
原创 FastAPI:(10)中间件与CORS
本文介绍了FastAPI中的中间件与CORS机制。中间件用于在请求/响应过程中拦截处理,适用于日志记录、认证等全局功能,需用@app.middleware("http")注册。CORS则解决跨域资源共享问题,通过CORSMiddleware配置允许的源、方法和头信息。文中通过正反例对比展示了中间件的正确用法(如记录请求时间)与滥用(如处理业务逻辑),以及CORS在单页应用和多平台API中的合理配置方式,帮助开发者正确使用这两项核心功能。
2025-06-16 22:32:43
968
原创 FastAPI:(9)安全性
摘要:本文介绍了FastAPI框架中的安全机制实现,重点聚焦OAuth2授权协议和JWT应用。主要内容包括:1) OAuth2密码模式在FastAPI中的实现方式,包括用户认证流程和Bearer Token验证机制;2) 通过智能家居和教育平台案例展示OAuth2的实际应用;3) 密码哈希存储的安全实践。文章采用代码示例结合图解的方式,清晰展示了从用户登录到资源访问的完整安全验证流程,适用于构建需要用户认证的中小型API系统。
2025-06-16 22:19:30
696
原创 FastAPI:(8)依赖项
FastAPI依赖项系统详解:本文介绍了FastAPI中依赖项的核心概念与实践用法。依赖项是一种声明式机制,通过Depends()实现可复用逻辑的自动注入,包括函数依赖、类依赖、子依赖等多种形式。文章通过用户认证、数据库连接管理等实际案例,展示了依赖项如何实现代码解耦、资源管理和安全控制,并详细解析了可调用对象(函数、类实例、partial对象等)在依赖系统中的应用。关键特性包括声明式注入、支持嵌套依赖、作用域控制和与安全机制的无缝结合,这些使FastAPI能够构建高度模块化和可维护的API应用。
2025-06-16 22:18:50
658
原创 FastAPI:(7)路劲操作配置与JSON编码兼容
本文介绍了FastAPI中路径操作配置与JSON编码兼容的核心功能。主要内容包括: 路径操作装饰器配置: 通过@app.get()等装饰器绑定URL路径与请求方法(GET/POST等) 可添加元数据(summary/description/tags)和响应模型 自动生成OpenAPI文档和Swagger UI界面 关键配置参数: status_code定义HTTP状态码 tags参数用于API分组 通过summary/description或文档字符串添加描述 response_description定义响
2025-06-16 22:18:05
915
原创 FastAPI:(6)错误处理
例如,出于某些方面的安全需要。)的处理,以及自定义异常类型的注册和响应方式。,FastAPI 就不再继续执行_路径操作函数_中的后续代码,而是立即终止请求,并把。中导入要复用的默认异常处理器,可以在处理异常之后再复用默认的异常处理器。只为错误返回纯文本响应,而不是返回 JSON 格式的内容。开发时,可以用这个请求体生成日志、调试错误,并返回给用户。如在调用「路径操作函数」里的工具函数时,触发了。能自动处理这些数据,并将之转换为 JSON。这样,异常处理器就可以接收。中处理该异常的默认异常处理器。
2025-06-16 22:17:25
801
原创 FastAPI:(5)表单与请求文件
本文介绍了FastAPI处理表单数据和文件上传的核心方法。主要内容包括: 表单数据处理 通过Form类型声明接收application/x-www-form-urlencoded编码的表单数据 适用于简单键值对数据,如登录/注册场景 需安装python-multipart依赖包 表单模型 基于Pydantic.BaseModel构建结构化表单模型 每个字段需显式使用Form()声明 适合多字段复杂表单,提供更好的验证和复用性 可通过配置禁止额外字段 请求文件处理 使用File()声明文件上传字段 配合mul
2025-06-16 22:16:44
930
原创 FastAPI:(4)请求体
本文介绍了FastAPI中请求体(Request Body)的相关概念和使用方法。主要内容包括: 请求体的定义与特征:作为HTTP请求中结构化数据的载体,支持自动解析、验证和文档生成,适用于POST、PUT等方法。 Body请求体的应用场景: 单一值处理:使用Body()函数将单一值作为请求体参数 多参数组合:同时处理多个Pydantic模型参数 JSON自动解析:FastAPI会自动解析JSON格式数据 请求体与其他参数的配合使用:可以与路径参数、查询参数同时使用,FastAPI能正确识别不同参数来源。
2025-06-16 22:15:57
937
原创 FastAPI:(3)参数
本文详细介绍了FastAPI框架中的参数处理机制,主要内容包括: 路径参数:用于URL路径中的变量定义,支持类型校验和自动文档生成。需注意路径匹配优先级(静态路由优先于动态路由)和参数预设值(使用Enum枚举实现)。 查询参数:通过Pydantic模型实现结构化验证,支持长度限制、正则表达式等校验方式。 Cookie/Header参数:提供统一的结构化验证机制。 响应控制:包括响应模型的数据过滤和状态码设置。 文章通过正反示例对比,展示了各种参数使用的正确姿势,特别强调路径参数中静态路由必须优先定义的重要性
2025-06-16 22:15:13
691
原创 FastAPI:(2)开启FastAPI
本文介绍了如何使用FastAPI创建API服务,并探讨了OpenAPI规范在API开发中的重要性。主要内容包括: 快速入门FastAPI的基本使用方法,展示如何创建简单API端点 详细解释OpenAPI规范的功能特点及其在FastAPI中的自动集成 通过医疗系统API(正例)和Flask接口文档(反例)对比说明OpenAPI的优势 深入解析"模式"的概念及其在数据验证、文档生成等方面的应用 提供多种模式应用示例,包括数据模式、API模式、数据库模式和UI模式
2025-06-16 22:14:26
796
原创 FastAPI:(1)并发async与await
FastAPI异步编程指南:高效处理I/O密集与CPU密集任务 摘要: 本文详解FastAPI的异步机制,区分I/O密集与CPU密集任务特征,指导开发者选择合适的并发模型。I/O密集任务(如网络请求、文件操作)推荐使用async/await异步处理,避免阻塞;CPU密集任务(如机器学习计算)则适合多进程并行。文章通过Mermaid图表清晰展示进程/线程/协程的关系,并提供代码示例说明async/await的实践用法,帮助开发者构建高性能Web服务。同时指出优化方向:I/O任务应优化网络/数据库,CPU任务需
2025-06-16 22:10:56
1212
原创 PyTorch(七)模型的保存与加载
仅保存模型的参数(状态字典)是更加推荐的方式,因为它更加灵活和安全。但是,如果你想要快速保存和加载整个模型,不担心模型结构变化或安全问题,保存整个模型也是一个可行的选择。
2024-07-02 19:05:24
689
原创 PyTorch(六)优化模型参数
c 目的 优化的目的已经拥有了一个「模型」和「数据」,是时候通过「优化模型参数」来训练、验证和测试模型。#d 迭代训练训练模型是一个迭代过程;在每次迭代中,模型对输出做出猜测,计算其猜测的误差(损失),收集误差相对于其参数的导数,并使用「梯度下降」来优化这些参数。
2024-07-02 17:57:30
754
原创 PyTorch(五)自动微分
c 概述 文档概述涉及到的知识点讲解:「自动微分」,「梯度」,「权重」,「偏置」,「反向传播」,「计算图」。主要讲解了「自动微分」与「梯度计算」,「计算图」之间的概念关系。
2024-06-28 14:07:58
1765
原创 PyTorch(四)数据转换与构建神经网络
d 神经网络定义通过继承nn.Module来定义神经网络,并在__init__方法中初始化神经网络层。每一个nn.Module的子类都在forward方法中实现了对「输入数据」的操作。#e 定义代码 神经网络定义def __init__(self):#初始化神经网络层super().__init__()#调用父类的初始化方法self.flatten = nn.Flatten()#将图像张量展平。
2024-06-26 08:30:38
691
原创 PyTorch(三)数据集与数据加载器
c 要素 自定义数据集要素__init__:初始化函数,用于设置数据集的属性,如加载数据、预处理步骤等。__len__:返回数据集中样本的数量。这个函数使得Dataset对象可以被len()函数调用,通常返回数据集中样本的总数。:根据索引获取单个样本。这个函数允许通过索引访问数据集中的每个样本。索引从0开始,对应于数据集中的第一个样本。#e 三要素 自定义数据集要素import osself.img_labels = pd.read_csv(annotations_file)#读取CSV文件。
2024-06-22 12:06:00
562
原创 PyTorch(二)张量
c 总结 张量总结该文档主要熟悉了「张量」的概念,理解了「张量」在深度学习中扮演的重要角色,如何判断代码中哪些属于张量。其次熟悉了张量的「四种初始化」,以及「张量属性」,「张量操作」
2024-06-21 23:15:53
831
原创 PyTorch(一)模型训练过程
c 总结 实践总结该实践从「数据处理」开始到最后利用训练好的「模型」预测,感受到了整个模型的训练过程。其中也有部分知识点,例如定义神经网络,只是初步的模仿,有一个比较浅的认识,还需要继续学习原理。「准备数据」,「创建数据加载器」,「选择训练设备」,「定义神经网络」,「定义损失函数和优化器」,「定义训练和测试函数」,「迭代训练」,「保存模型」,「加载模型」,「模型预测」。1.Dataset与DataLoader2.迭代器3.模型定义4.损失函数与优化器5.模型训练与测试。
2024-06-21 11:22:36
1136
原创 天池人脸识别项目复现
c 说明 模型定义创建数据接⼝后,开始定义⼀个⽹络 simpleconv3。一个简单的 3 层卷积。在 torch.nn 下,有各种网络层,这里就用到了 nn.Conv2d,nn.BatchNorm2d 和 nn.Linear,分别是卷积层,BN 层和全连接层。in_channels:输入通道数out_channels:输出通道数kernel_size:卷积核的大小stride:卷积核的移动步长#e 模型定义的代码 模型定义# 定义一个简单的卷积神经网络。
2024-06-20 11:53:54
1626
原创 Linux下的多进程编程
编写多进程代码,实现 主进程 创建 3个子进程。每个子进程输出 1~ 10的数字,每2秒输出一个。主进程输出子进程的创建情况,pid。
2022-12-02 10:44:08
432
原创 Docker配置nginx
我们在使用容器的过程中需,有时候需要对容器中的文件进行修改管理,如果不做文件映射的化,我们使用docker exec -it 容器ID/容器名 /bin/bash 才能进入nginx中的文件里面如图。架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将原本要直接发送到web服务器上的http请求发送到代理服务器中。A想要组C的房子,但是A并不认识C所以租不到,但是B认识C,A找B帮忙租到了C的房子。客户端代理服务器服务器。
2022-11-26 11:18:57
20971
2
原创 Ubuntu22.2下C语言编程实现,首次,最佳适应算法
编写C语言程序,模拟实现首次/最佳/最坏适应算法(选择其中之一即可)的内存块分配和回收,要求每次分配和回收后显示出空闲分区和已分配分区的情况。假设初始状态下,可用的内存空间为640KB。假设下列作业请求序列:(1)作业1 申请130 KB (2)作业2 申请60 KB (3)作业3 申请100 KB(4)作业2 释放60 KB (5)作业3 释放100 KB (6)作业1 释放130 KB显示每次作业申请或释放后当前内存情况。
2022-11-25 15:26:49
7101
3
原创 windows server 2012R组策略
命令gpedit.msc快捷键win+R 打开「运行」输入命令,进入「本地组策略」本地组策略管理界面前提条件安装有活动目录进入活动目录组策略管理命令:gpmc.msc创建新的组策略对象对新建的「组策略对象」进行设置「组策略对象」的链接,例子:通过创建的「组策略对象」对「财务处」进行统一管理。既对「组策略对象」的设置将不会影响到其他部门的计算机和用户,只对「财务处」的计算机和用户产生影响。
2022-10-25 20:36:18
5641
原创 域,域控制器,活动目录
如果想给一个工作组(500台电脑)添加一个登录用户,传统的方式是在500台电脑上都添加用户的账号和密码,如果使用「域」就没有那么麻烦。用于储存有关「网络对象」(用户,组,计算机,共享资源,打印机,联系人等)的信息,帮助用户很快的找到相应的信息,提供「集中管理」储存有整个域的账户,密码,属于这个域当中计算机,服务器的信息的数据库,域内计算机的访问都需要通过他。升级版的工作组,在安全上更加严格,用户对域内资源的访问,取决于用户在域当中的权限。首先配置「IP」与「DNS服务器」,注意DSN服务器是父域的IP,
2022-10-13 21:15:56
3529
原创 Linux挂载window下的文件
NVMe-oF建立在NVMe规范的基础之上,是一种高速存储协议,用于跨网络结构(如以太网、光纤通道和InfiniBand)访问固态存储。通过过网络的方式,可以访问网络上的文件,启用某一个物理设备(硬盘,U盘,移动硬盘),网络设备(共享一个文件夹,网路打印机),虚拟设备,网络文件系统(NFS)既是一种分布式文件系统,也是一种网络协议,用于在同一局域网上的设备之间访问和共享文件。不同的文件系统进行访问,是通过访问协议进行访问,如(NFS,iSCSI协议)在挂载时没有设置uid和gid,挂载后的文件都有锁。
2022-10-09 22:14:01
1208
原创 Windows server 2012R2下负载均衡服务器之ISCSI服务器配置
NFS(Nestwork File System):网络文件共享协议,允许用户到网络上的一台文件服务器上读写文件FC(Fiber Channel):光线通道,采用光纤,传输速度较快ISCSI(Internet Small Computer System Interfere):互联网小型计算机系统接口,基于IP网络的存储局域网,
2022-10-08 17:16:31
2091
1
原创 Windows server 2012R2下流媒体服务器的配置与管理
d 边下载边播放流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕。#e 例子 边下载边播放该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。
2022-09-29 22:04:09
2303
原创 Windows server 2012R2下Winmail邮件服务器的配置与管理
在「系统服务」中HTTP默认的不是80端口,那么在访问邮件服务器的就需要在域名后面加上相应的端口号,要像使用域名直接访问,就需要把80端口的服务先关闭,在把HTTP对应的端口号改为80,同时要启动服务。
2022-09-27 21:43:57
4792
1
原创 数据库的学习
先把要删除的记录放入到deleted的临时表中(在临时表当中判断业务逻辑是否正确),确认无误后在插入物理表当中(例如删除一个题库的题目,判断题目的解答内容有没有被删除),先插入到临时表中,在插入到物理数据库表当中(数据有效性的验证)。**③“C” 控制器:**C,Java,C++,后台程序,如aspx.cs Java的servlet。如果是未命名的字段,比如字段1+‘’这种临时变量,就不会有该标签名,表现为实际值。可见:过程就是一个小功能模板,程序段,一般是参数的输入,输出,与外界进行接口。
2022-09-22 21:58:05
1033
原创 Windows server 2012R2下FTP服务的配置与管理
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;如果传输二进制文件,所有的位都是重要的。假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。有的时候,需要用户进行登录才可以访问FTP服务器,我们可以在计算机当中,设置相应的组,用来专门范文FTP服务器。
2022-09-22 20:26:19
7177
原创 Windows server 2012R2下IIS服务器的配置与管理
虚拟目录:实现服务器磁盘的扩展,可以与服务器不在同一台机器上面,访问时使用相同的IP和端口。虚拟站点使得,用户在访问服务器的时候可以访问多个网站。在一个服务器上创建多个网站。如果web服务器访问量过大可能会导致服务器死机,所以需要限制带宽,限制连接数量。在浏览器输入自己电脑的IP地址或者127.0.0.1。默认文档决定浏览器在输入IP地址时打开的是那个网页,例子:扩展服务器的存储电影的磁盘。这里需要有主机和IP的对应关系。修改Default的文件路径。访问到自己建立的一个网站。
2022-09-20 20:46:59
13385
C++,QT,SQL server开发GUI项目,”算法可视化“。用于大家学习模仿。程序代码注释比较多方便理解。
2022-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人