摘要: fastapi(66)- 修改 uvicorn 的日志格式 背景 默认启动 uvicorn 之后,访问接口会有打印日志,如下 但我觉得这个日志满足不了我,我想加内容,比如时间戳,那要怎么操作捏 首先打断点 debug 走起 F7 进到内部 ctrl + 点击 Config,然后往下看有一个 log_ 阅读全文
posted @ 2022-01-06 14:44 小学弟- 阅读(484) 评论(0) 推荐(0)
摘要: fastapi(65)- 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构 前置知识 JSONResponse:https://www.cnblogs.com/poloyy/p/15364445.html response_mode 阅读全文
posted @ 2022-01-06 14:42 小学弟- 阅读(108) 评论(0) 推荐(0)
摘要: FastAPI(64)- Settings and Environment Variables 配置项和环境变量 背景 在许多情况下,应用程序可能需要一些外部设置或配置,例如密钥、数据库凭据、电子邮件服务凭据等。 大多数这些设置都是可变的(可以更改),例如数据库 URL,很多可能是敏感数据,比如密码 阅读全文
posted @ 2022-01-06 14:39 小学弟- 阅读(317) 评论(0) 推荐(0)
摘要: FastAPI(63)- Concurrency and async / await 并发、异步/等待 await 如果使用的第三方库说明调用它们要通过 await results = await some_library() 声明路径操作函数 @app.get('/') async def rea 阅读全文
posted @ 2022-01-06 14:37 小学弟- 阅读(244) 评论(0) 推荐(0)
摘要: FastAPI(62)- FastAPI 部署在 Docker Docker 学习 https://www.cnblogs.com/poloyy/p/15257059.html 项目结构 . ├── app │ ├── __init__.py │ └── main.py ├── Dockerfile 阅读全文
posted @ 2022-01-06 14:36 小学弟- 阅读(381) 评论(0) 推荐(0)
摘要: FastAPI(61)- 异步测试 前言 前面讲解了通过 pytest 进行单元测试,是针对同步函数的:https://www.cnblogs.com/poloyy/p/15354901.html 但它无法再 pytest 中测试或运行任何异步函数 能够在测试中使用异步函数可能很有用 例如,当异步查 阅读全文
posted @ 2022-01-06 14:29 小学弟- 阅读(250) 评论(0) 推荐(0)
摘要: FastAPI(59)- 详解使用 OAuth2PasswordBearer + JWT 认证 JWT JSON Web Tokens 它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准 使用 JWT token 和安全密码 hash 使应用程序真正安全 JWT 小栗子 eyJhbGci 阅读全文
posted @ 2022-01-06 14:28 小学弟- 阅读(885) 评论(0) 推荐(1)
摘要: FastAPI(60)- 针对 WebSocket 进行单元测试 前言 还是比较简单的,直接写代码啦 FastAPI 的单元测试:https://www.cnblogs.com/poloyy/p/15354901.html 直接上代码 #!usr/bin/env python # -*- codin 阅读全文
posted @ 2022-01-06 14:28 小学弟- 阅读(257) 评论(0) 推荐(0)
摘要: FastAPI(58)- 使用 OAuth2PasswordBearer 的简单栗子 背景 假设在某个域中拥有后端 API(127.0.0.1:8080) 并且在另一个域或同一域的不同路径(或移动应用程序)中有一个前端(127.0.0.1:8081) 并且希望有一种方法让前端使用用户名和密码与后端进 阅读全文
posted @ 2022-01-06 14:27 小学弟- 阅读(313) 评论(0) 推荐(0)
摘要: FastAPI(57)- 安全相关的概念 OAuth2 OAuth2 是一个规范,它定义了几种处理身份验证和授权的方法 这是一个相当广泛的规范,涵盖了几个复杂的用例 它包括使用“第三方”进行身份验证的方法 比如在抖音通过微信、QQ 登录,底层用的就是 OAuth2 OAuth1 OAuth 1,它与 阅读全文
posted @ 2022-01-06 13:44 小学弟- 阅读(84) 评论(0) 推荐(0)
摘要: FastAPI(56)- 使用 Websocket 打造一个迷你聊天室 背景 在实际项目中,可能会通过前端框架使用 WebSocket 和后端进行通信 这里就来详细讲解下 FastAPI 是如何操作 WebSocket 的 模拟 WebSocket 客户端 #!usr/bin/env python 阅读全文
posted @ 2022-01-06 13:41 小学弟- 阅读(511) 评论(1) 推荐(0)
摘要: FastAPI(55)- Events: startup - shutdown 启动/关闭事件 背景 可以定义需要在应用程序启动之前或应用程序关闭时执行的事件处理程序(函数) 这些函数可以用 async def 或普通 def 注意:只会执行主应用程序的事件处理程序,而不会执行子应用程序 实际代码 阅读全文
posted @ 2022-01-06 13:37 小学弟- 阅读(181) 评论(0) 推荐(0)
摘要: FastAPI(54)- 详解 Request 请求对象 背景 前面讲了可以自定义 Response,那么这里就讲下请求对象 Request 可以通过 Request 来获取一些数据 获取请求基础信息 @app.get("/base") async def get_base(*, request: 阅读全文
posted @ 2022-01-06 13:35 小学弟- 阅读(372) 评论(0) 推荐(0)
摘要: FastAPI(53)- Response Headers 响应设置 Headers 前言 前面讲过如何获取 Headers:https://www.cnblogs.com/poloyy/p/15316932.html 也顺带提了下如何设置 Response Header,还是比较简单的 有两种实现 阅读全文
posted @ 2022-01-06 12:20 小学弟- 阅读(236) 评论(0) 推荐(0)
摘要: FastAPI(52)- Response Cookies 响应设置 Cookies 前言 前面讲过如何获取 Cookies:https://www.cnblogs.com/poloyy/p/15316660.html 也顺带提了下如何设置 Response Cookie,还是比较简单的 有两种实现 阅读全文
posted @ 2022-01-06 12:19 小学弟- 阅读(315) 评论(0) 推荐(0)
摘要: FastAPI(50)- 自定义响应之 RedirectResponse 更多自定义响应类型 JSONResponse ORJSONResponse、UJSONResponse HTMLResponse、PlainTextResponse StreamingResponse、FileResponse 阅读全文
posted @ 2022-01-06 12:17 小学弟- 阅读(205) 评论(0) 推荐(0)
摘要: FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse 更多自定义响应类型 JSONResponse HTMLResponse、PlainTextResponse ORJSONResponse、UJSONResponse RedirectResponse 阅读全文
posted @ 2022-01-06 12:17 小学弟- 阅读(808) 评论(0) 推荐(0)
摘要: FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse 背景 上一篇文章讲了通过 Response 自定义响应,但有一个缺点 如果直接返回一个 Response,数据不会自动转换,也不会显示在文档中 这一节开始讲自定义响应 会讲解多个响应类型 JSONR 阅读全文
posted @ 2022-01-06 12:16 小学弟- 阅读(267) 评论(0) 推荐(0)
摘要: FastAPI(47)- 通过 Response 自定义响应的类型 假设返回一个 XML 格式的响应 import uvicorn from fastapi import FastAPI, Response app = FastAPI() @app.get("/legacy/") def get_l 阅读全文
posted @ 2022-01-06 12:15 小学弟- 阅读(62) 评论(0) 推荐(0)
摘要: FastAPI(46)- JSONResponse 背景 创建 FastAPI 路径操作函数时,通常可以从中返回任何数据:字典、列表、Pydantic 模型、数据库模型等 默认情况下,FastAPI 会使用 jsonable_encoder 自动将该返回值转换为 JSON 字符串 然后,FastAP 阅读全文
posted @ 2022-01-06 12:14 小学弟- 阅读(384) 评论(0) 推荐(0)
摘要: FastAPI(45)- 返回响应数据的五种常见方式 实际代码 默认情况下,路径操作函数可以返回 Python 数据类型、Pydantic Model,FastAPI 会自动将它们转换为和 JSON 兼容的数据 #!usr/bin/env python # -*- coding:utf-8 _*- 阅读全文
posted @ 2022-01-06 12:13 小学弟- 阅读(710) 评论(0) 推荐(0)
摘要: FastAPI(44)- 操作关系型数据库 ORM FastAPI 可与任何数据库和任何样式的库配合使用并和数据库通信 object-relational mapping 对象关系映射 ORM 具有在代码和数据库表(关系)中的对象之间进行转换(映射)的工具 使用 ORM,通常会创建一个表示 SQL 阅读全文
posted @ 2022-01-06 12:11 小学弟- 阅读(141) 评论(0) 推荐(0)
摘要: FastAPI(43)- 基于 pytest + requests 进行单元测试 FastAPI 的单元测试 对于服务端来说,通常会对功能进行单元测试,也称白盒测试 FastAPI 集成了第三方库,让我们可以快捷的编写单元测试 FastAPI 的单元测试是基于 Pytest + Request 的 阅读全文
posted @ 2022-01-06 12:10 小学弟- 阅读(168) 评论(0) 推荐(0)
摘要: FastAPI(42)- Static Files 静态资源 安装 aiofiles pip install aiofiles 个人感想 现在都是前后端分离,感觉在 FastAPI 应用程序中直接使用静态资源的可能性不大,只做了解(也不难 使用 StaticFiles 访问静态资源 from fas 阅读全文
posted @ 2022-01-06 12:03 小学弟- 阅读(268) 评论(0) 推荐(0)
摘要: FastAPI(41)- Background Task 后台任务 后台任务 顾名思义,可以在返回响应后运行后台任务 这对于需要在请求后执行特定的操作很有用,且客户端并不需要在接收响应之前等待该操作完成 常见的栗子 发送电子邮件通知,由于连接到电子邮件服务器并发送电子邮件往往会比较“缓慢”(几秒钟) 阅读全文
posted @ 2022-01-06 10:54 小学弟- 阅读(502) 评论(0) 推荐(0)
摘要: FastAPI(40)- 大型应用程序的项目拆分 背景 假设要搭建一个测试平台,那么整个项目的 API 数量肯定很多个,他们不可能放在同一个文件中 FastAPI 提供了一个方便的工具来构建应用程序,同时保持所有的灵活性 项目架构 假设结构如下 . ├── app │ ├── __init__.py 阅读全文
posted @ 2022-01-06 10:50 小学弟- 阅读(121) 评论(0) 推荐(0)
摘要: FastAPI(39)- 使用 CORS 解决跨域问题 同源策略 https://www.cnblogs.com/poloyy/p/15345184.html CORS https://www.cnblogs.com/poloyy/p/15345871.html FastAPI 模拟跨域问题 htt 阅读全文
posted @ 2022-01-06 10:49 小学弟- 阅读(479) 评论(0) 推荐(0)
摘要: FastAPI(38)- 模拟一个跨域场景 同源策略 https://www.cnblogs.com/poloyy/p/15345184.html CORS https://www.cnblogs.com/poloyy/p/15345871.html 需要先了解什么是同源策略和 CORS 才能更好看 阅读全文
posted @ 2022-01-06 10:48 小学弟- 阅读(79) 评论(0) 推荐(0)
摘要: FastAPI(37)- Middleware 中间件 什么是中间件 就是一个函数,它在被任何特定路径操作处理之前处理每个请求,且在每个 response 返回之前被调用 类似钩子函数 执行顺序 中间件会接收应用程序中的每个请求 Request 针对请求 Request 或其他功能,可以自定义代码块 阅读全文
posted @ 2022-01-06 10:26 小学弟- 阅读(454) 评论(0) 推荐(0)
摘要: FastAPI(36)- FastAPI 的元数据配置和文档 URL Metadata 元数据 可以给 API 添加元数据 实际栗子 #!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blog: https://w 阅读全文
posted @ 2022-01-06 10:12 小学弟- 阅读(94) 评论(0) 推荐(0)
摘要: FastAPI(35)- 依赖项中使用 yield + Context Manager 上下文管理器 什么是 Context Manager 上下文管理器 在 Python 中,是可以在 with 语句中使用的任何 Python 对象,比如通过 with 来读取文件 with open("./som 阅读全文
posted @ 2022-01-06 09:48 小学弟- 阅读(124) 评论(0) 推荐(0)
摘要: FastAPI(34)- Dependencies with yield 依赖项中使用 yield 背景 FastAPI 支持在依赖项返回后执行一些额外的步骤 但需要用 yield 代替 return 来达到这一目的 版本要求 为了达到上述效果,需要使用 Python 3.7+ 或者在 Python 阅读全文
posted @ 2022-01-06 09:47 小学弟- 阅读(143) 评论(0) 推荐(0)