随笔分类 -  测试高级进阶技能系列 - FastAPI

摘要:背景 默认启动 uvicorn 之后,访问接口会有打印日志,如下 但我觉得这个日志满足不了我,我想加内容,比如时间戳,那要怎么操作捏 首先打断点 debug 走起 F7 进到内部 ctrl + 点击 Config,然后往下看有一个 log_config ctrl + 点击 LOGGIN_CONFIG 阅读全文
posted @ 2021-11-13 17:55 小菠萝测试笔记 阅读(4869) 评论(1) 推荐(0) 编辑
摘要:前置知识 JSONResponse:https://www.cnblogs.com/poloyy/p/15364445.html response_model:https://www.cnblogs.com/poloyy/p/15317585.html 背景 在写辣鸡平台,然后有统一的自定义 JSO 阅读全文
posted @ 2021-11-13 16:29 小菠萝测试笔记 阅读(870) 评论(1) 推荐(1) 编辑
摘要:背景 在许多情况下,应用程序可能需要一些外部设置或配置,例如密钥、数据库凭据、电子邮件服务凭据等。 大多数这些设置都是可变的(可以更改),例如数据库 URL,很多可能是敏感数据,比如密码 出于这个原因,通常在应用程序读取的环境变量中提供它们 Pydantic Settings Pydantic 提供 阅读全文
posted @ 2021-10-10 15:54 小菠萝测试笔记 阅读(1758) 评论(0) 推荐(0) 编辑
摘要:await 如果使用的第三方库说明调用它们要通过 await results = await some_library() 声明路径操作函数 @app.get('/') async def read_results(): results = await some_library() return r 阅读全文
posted @ 2021-10-09 09:24 小菠萝测试笔记 阅读(795) 评论(0) 推荐(0) 编辑
摘要:Docker 学习 https://www.cnblogs.com/poloyy/p/15257059.html 项目结构 . ├── app │ ├── __init__.py │ └── main.py ├── Dockerfile └── requirements.txt FastAPI 应用 阅读全文
posted @ 2021-10-08 21:23 小菠萝测试笔记 阅读(1727) 评论(2) 推荐(0) 编辑
摘要:前言 前面讲解了通过 pytest 进行单元测试,是针对同步函数的:https://www.cnblogs.com/poloyy/p/15354901.html 但它无法再 pytest 中测试或运行任何异步函数 能够在测试中使用异步函数可能很有用 例如,当异步查询数据库时,假设想要测试向 Fast 阅读全文
posted @ 2021-10-08 09:18 小菠萝测试笔记 阅读(821) 评论(0) 推荐(1) 编辑
摘要:前言 还是比较简单的,直接写代码啦 FastAPI 的单元测试:https://www.cnblogs.com/poloyy/p/15354901.html 直接上代码 #!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 阅读全文
posted @ 2021-10-07 21:22 小菠萝测试笔记 阅读(862) 评论(0) 推荐(0) 编辑
摘要:JWT JSON Web Tokens 它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准 使用 JWT token 和安全密码 hash 使应用程序真正安全 JWT 小栗子 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY 阅读全文
posted @ 2021-10-07 21:05 小菠萝测试笔记 阅读(2628) 评论(0) 推荐(0) 编辑
摘要:背景 假设在某个域中拥有后端 API(127.0.0.1:8080) 并且在另一个域或同一域的不同路径(或移动应用程序)中有一个前端(127.0.0.1:8081) 并且希望有一种方法让前端使用用户名和密码与后端进行身份验证 可以使用 OAuth2 通过 FastAPI 来构建它,通过 FastAP 阅读全文
posted @ 2021-10-07 13:59 小菠萝测试笔记 阅读(3418) 评论(0) 推荐(0) 编辑
摘要:OAuth2 OAuth2 是一个规范,它定义了几种处理身份验证和授权的方法 这是一个相当广泛的规范,涵盖了几个复杂的用例 它包括使用“第三方”进行身份验证的方法 比如在抖音通过微信、QQ 登录,底层用的就是 OAuth2 OAuth1 OAuth 1,它与 OAuth2 非常不同,而且更复杂,因为 阅读全文
posted @ 2021-10-06 11:59 小菠萝测试笔记 阅读(386) 评论(0) 推荐(0) 编辑
摘要:背景 在实际项目中,可能会通过前端框架使用 WebSocket 和后端进行通信 这里就来详细讲解下 FastAPI 是如何操作 WebSocket 的 模拟 WebSocket 客户端 #!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 阅读全文
posted @ 2021-10-05 23:22 小菠萝测试笔记 阅读(2006) 评论(0) 推荐(1) 编辑
摘要:背景 可以定义需要在应用程序启动之前或应用程序关闭时执行的事件处理程序(函数) 这些函数可以用 async def 或普通 def 注意:只会执行主应用程序的事件处理程序,而不会执行子应用程序 实际代码 #!usr/bin/env python # -*- coding:utf-8 _*- """ 阅读全文
posted @ 2021-10-04 19:37 小菠萝测试笔记 阅读(1485) 评论(0) 推荐(0) 编辑
摘要:背景 前面讲了可以自定义 Response,那么这里就讲下请求对象 Request 可以通过 Request 来获取一些数据 获取请求基础信息 @app.get("/base") async def get_base(*, request: Request): res = { # 客户端连接的 ho 阅读全文
posted @ 2021-10-04 18:13 小菠萝测试笔记 阅读(2936) 评论(0) 推荐(0) 编辑
摘要:前言 前面讲过如何获取 Headers:https://www.cnblogs.com/poloyy/p/15316932.html 也顺带提了下如何设置 Response Header,还是比较简单的 有两种实现场景 路径操作函数声明 Response 参数来设置 Header 在函数内,通过 r 阅读全文
posted @ 2021-10-04 15:17 小菠萝测试笔记 阅读(523) 评论(0) 推荐(0) 编辑
摘要:前言 前面讲过如何获取 Cookies:https://www.cnblogs.com/poloyy/p/15316660.html 也顺带提了下如何设置 Response Cookie,还是比较简单的 有两种实现场景 路径操作函数声明 Response 参数来设置 Cookie 在函数内,通过 r 阅读全文
posted @ 2021-10-04 14:56 小菠萝测试笔记 阅读(1084) 评论(0) 推荐(0) 编辑
摘要:更多自定义响应类型 JSONResponse HTMLResponse、PlainTextResponse ORJSONResponse、UJSONResponse RedirectResponse StreamingResponse 作用 采用异步生成器或普通生成器(generator)/迭代器( 阅读全文
posted @ 2021-10-03 22:29 小菠萝测试笔记 阅读(4886) 评论(0) 推荐(0) 编辑
摘要:更多自定义响应类型 JSONResponse ORJSONResponse、UJSONResponse HTMLResponse、PlainTextResponse StreamingResponse、FileResponse RedirectResponse 作用 返回一个 HTTP 重定向响应 阅读全文
posted @ 2021-10-03 21:00 小菠萝测试笔记 阅读(1273) 评论(0) 推荐(0) 编辑
摘要:更多自定义响应类型 JSONResponse HTMLResponse、PlainTextResponse RedirectResponse StreamingResponse、FileResponse ORJSONResponse 作用 如果需要提高性能,可以安装并使用 orjson,并将响应设置 阅读全文
posted @ 2021-10-03 20:31 小菠萝测试笔记 阅读(964) 评论(0) 推荐(0) 编辑
摘要:背景 上一篇文章讲了通过 Response 自定义响应,但有一个缺点 如果直接返回一个 Response,数据不会自动转换,也不会显示在文档中 这一节开始讲自定义响应 会讲解多个响应类型 JSONResponse HTMLResponse、PlainTextResponse ORJSONRespon 阅读全文
posted @ 2021-10-03 20:29 小菠萝测试笔记 阅读(1148) 评论(0) 推荐(0) 编辑
摘要:假设返回一个 XML 格式的响应 import uvicorn from fastapi import FastAPI, Response app = FastAPI() @app.get("/legacy/") def get_legacy_data(): data = """<?xml ve r 阅读全文
posted @ 2021-10-03 17:57 小菠萝测试笔记 阅读(467) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示