![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FastAPI
文章平均质量分 67
上海-悠悠
上海-悠悠 专注python自动化测试
展开
-
Fastapi 项目第二天首次访问时数据库连接报错问题Can‘t connect to MySQL server
Fastapi 项目使用 sqlalchemy 连接的mysql 数据库,每次第二天首次访问数据库相关操作,都会报错:sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, “Can’t connect to MySQL server on ‘x.x.x.x’ ([Errno 111] Connection refused)”)原创 2024-07-06 09:27:14 · 582 阅读 · 0 评论 -
FastAPI学习-31 FastAPI 如何集成 socket.io
socket.io就是基于 websocket 封装的一个库,主要特点是能够进行实时的双向通讯,主要应用场景有实时的聊天,数据实时分析,数据传输,文件协同合作。原创 2024-02-20 08:02:39 · 1192 阅读 · 0 评论 -
pytest-yaml 测试平台-3.创建执行任务定时执行用例
当项目用例编写完成后,需设置执行策略,可以用到定时任务设置每天几点执行。或者间隔几个小时执行一次。原创 2023-10-27 13:01:34 · 911 阅读 · 0 评论 -
pytest-yaml 测试平台-2.支持上传YAML格式用例
pytest-yaml 测试平台用例结构是遵循pytest-yaml-yoyo 框架用例规则。如果你之前已经有用 pytest-yaml-yoyo 框架完成了yaml 用例的编写,可以直接在平台上导入yaml 用例。原创 2023-10-24 11:58:12 · 493 阅读 · 0 评论 -
pytest-yaml 测试平台-1.新增项目和用例(有平台体验地址)
基于pytest-yaml-yoyo 框架写的接口测试平台,在web网页平台上维护yaml测试用例,执行用例,并查看allure报告。原创 2023-10-24 11:57:33 · 703 阅读 · 0 评论 -
FastAPI学习-27 使用@app.api_route() 设置多种请求方式
对同一个访问函数设置多个http 请求方式原创 2023-10-12 07:08:56 · 642 阅读 · 0 评论 -
FastAPI学习-26 并发 async / await
有关路径操作函数的 async def 语法以及异步代码、并发和并行的一些背景知识原创 2023-10-12 07:08:05 · 1228 阅读 · 0 评论 -
FastAPI学习-25.response_model 定义响应模型
你可以在任意的_路径操作_中使用 `response_model` 参数来声明用于响应的模型:原创 2023-10-09 07:38:15 · 341 阅读 · 0 评论 -
FastAPI学习-24.自定义异常处理器 exception_handler
假设要触发的自定义异常叫作 `UnicornException`。且需要 FastAPI 实现全局处理该异常。此时,可以用 `@app.exception_handler()` 添加自定义异常控制器原创 2023-10-07 19:33:58 · 586 阅读 · 0 评论 -
FastAPI学习-23.异常处理器 exception_handler
通常我们可以通过 raise 抛出一个 `HTTPException` 异常,请求参数不合法会抛出`RequestValidationError` 异常,这是最常见的2种异常。原创 2023-10-07 19:31:30 · 485 阅读 · 0 评论 -
FastAPI学习-22.response 异常处理 HTTPException
某些情况下,需要向客户端返回错误提示。这里所谓的客户端包括前端浏览器、其他应用程序、物联网设备等。需要向客户端返回错误提示的场景主要如下:原创 2023-10-07 19:30:33 · 671 阅读 · 0 评论 -
FastAPI学习-11. 请求body - 嵌套模型
前言使用FastAPI,你可以定义、校验、记录文档并使用任意深度嵌套的模型(归功于Pydantic)List 字段你可以将一个属性定义为拥有子元素的类型。例如 Pythonlist:from typing import Unionfrom fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()...原创 2023-09-13 20:41:00 · 418 阅读 · 0 评论 -
FastAPI学习-10. 路由管理APIRouter
前言在 Flask 中,我们一般用蓝图 Blueprint 来处理多个模块的视图,在fastapi 中也有类似的功能通过APIRouter 来管理。路由管理 APIRouter如果你正在开发一个应用程序或 Web API,很少会将所有的内容都放在一个文件中。FastAPI 提供了一个方便的工具,可以在保持所有灵活性的同时构建你的应用程序(如果你学过 Flask,那这将相当于 Flask ...原创 2023-09-12 14:12:00 · 388 阅读 · 0 评论 -
FastAPI学习-15.JSON 编码器 jsonable_encoder
前言在某些情况下,您可能需要将数据类型(如Pydantic模型)转换为与JSON兼容的数据类型(如dict、list等)。比如,如果您需要将其存储在数据库中。对于这种要求,FastAPI提供了jsonable_encoder()函数。使用jsonable_encoderjsonable_encoder在实际应用场景中,可能需要将数据类型(如:Pydantic 模型)转换为与 JS...原创 2023-09-17 10:54:00 · 556 阅读 · 0 评论 -
FastAPI学习-14. JSONResponse 返回JSON内容
当你创建一个FastAPI路径操作时,你可以正常返回以下任意一种数据:dict,list,Pydantic 模型,数据库模型等等。FastAPI默认会使用jsonable_encoder将这些类型的返回值转换成 JSON 格式,默认情况下会以content-type: application/json 格式返回在有些情况下,我们需要在路径操作中直接返回Response对象,这样...原创 2023-09-16 09:42:00 · 926 阅读 · 0 评论 -
FastAPI学习-16.响应状态码 status_code
前言与指定响应模型的方式相同,你也可以在以下任意的_路径操作_中使用status_code参数来声明用于响应的 HTTP 状态码:@app.get()@app.post()@app.put()@app.delete()响应状态码from fastapi import FastAPIapp = FastAPI()@app.post("/items/", status...原创 2023-09-17 10:55:00 · 252 阅读 · 0 评论 -
FastAPI学习-12. 请求Cookie 参数
前言你可以像定义Query参数和Path参数一样来定义Cookie参数。声明Cookie参数首先,导入Cookie:from fastapi import Cookie, FastAPI声明Cookie参数的结构与声明Query参数和Path参数时相同。第一个值是参数的默认值,同时也可以传递所有验证参数或注释参数,来校验参数:from typing i...原创 2023-09-13 20:42:00 · 158 阅读 · 0 评论 -
FastAPI学习-13. 请求Header 参数
前言你可以使用定义Query,Path和Cookie参数一样的方法定义 Header 参数。声明Header参数首先导入Header:from fastapi import FastAPI, Header然后使用和Path,QueryandCookie一样的结构定义 header 参数第一个值是默认值,你可以传递所有的额外验证或注释参数:from typin...原创 2023-09-13 20:44:00 · 367 阅读 · 0 评论 -
FastAPI学习-17.其它响应html,文件,视频或其它
前言通过我们返回JSON类型的接口会比较多,除了返回JSON格式,还可以响应其它格式的内容JSONResponse Content-Type会被设置成application/jsonHTMLResponse Content-Type会被设置成text/htmlPlainTextResponse Content-Type会被设置成 text/plainORJS...原创 2023-09-17 10:56:00 · 828 阅读 · 0 评论 -
FastAPI学习-18.Response 返回 XML 格式
前言假设你想要返回一个XML 响应。你可以把你的 XML 内容放到一个字符串中,放到一个Response中,然后返回。Response 自定义返回可以把 XML 内容放到一个字符串中,放到一个Response中,设置media_type="application/xml"from fastapi import FastAPI, Responseapp = FastAPI(...原创 2023-09-17 10:58:00 · 531 阅读 · 0 评论 -
FastAPI学习-19.response 参数-修改状态码
前言假设你想默认返回一个HTTP状态码为“OK”200。但如果数据不存在,你想创建它,并返回一个HTTP状态码为“CREATED”201。但你仍然希望能够使用response_model过滤和转换你返回的数据。对于这些情况,你可以使用一个response`参数。使用response参数status_code 设置默认状态码from fastapi import FastAPI,...原创 2023-09-17 11:00:00 · 270 阅读 · 0 评论 -
FastAPI学习-20.response 参数-设置响应头部
前言你可以在你的_路径操作函数_中声明一个Response类型的参数。设置响应头部你可以在这个_临时_响应对象中设置头部from fastapi import FastAPI, Responseapp = FastAPI()@app.get("/headers-and-object/")def get_headers(response: Response): resp...原创 2023-09-17 11:01:00 · 333 阅读 · 0 评论 -
FastAPI学习-21.response 参数-设置响应Cookies
前言可以在路径函数中定义一个类型为Response的参数,这样你就可以在这个临时响应对象中设置cookie了。response 参数设置cookiesfrom fastapi import FastAPI, Responseapp = FastAPI()@app.post("/cookie-and-object/")def create_cookie(response:...原创 2023-09-17 11:01:00 · 415 阅读 · 0 评论 -
FastAPI学习-9. Swagger文档输出请求示例example
前言可以在 Swagger文档上看到请求示例example,使用Pydantic schema_extra属性来实现。schema_extra使用 Config 和 schema_extra 为Pydantic模型声明一个示例,如Pydantic 文档:定制 Schema 中所述:from typing import Optionalfrom fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()clas原创 2022-03-13 09:09:55 · 1638 阅读 · 0 评论 -
FastAPI学习-8.POST请求body中添加Field
前言与使用 Query、Path 和 Body 在路径操作函数中声明额外的校验和元数据的方式相同,你可以使用 Pydantic 的 Field 在 Pydantic 模型内部声明校验和元数据。Field 字段参数说明关于 Field 字段参数说明Field(None) 是可选字段,不传的时候值默认为NoneField(…) 是设置必填项字段title 自定义标题,如果没有默认就是字段属性的值description 定义字段描述内容from pydantic import BaseMode原创 2022-03-13 09:09:08 · 685 阅读 · 0 评论 -
FastAPI学习-7.POST请求body-多个参数
前言既然我们已经知道了如何使用 Path 和 Query,下面让我们来了解一下请求体声明的更高级用法。混合使用 Path、Query 和请求体参数你可以随意地混合使用 Path、Query 和请求体参数声明,FastAPI 会知道该如何处理。还可以通过将默认值设置为 None 来将请求体参数声明为可选参数:from typing import Optionalfrom fastapi import FastAPI, Pathfrom pydantic import BaseModelap原创 2022-03-13 09:08:33 · 2610 阅读 · 0 评论 -
FastAPI学习-6.POST请求 JSON 格式 body
前言post请求接收json格式请求body创建数据模型从 pydantic 中导入 BaseModel, 将你的数据模型声明为继承自 BaseModel 的类。from typing import Optionalfrom fastapi import FastAPIfrom pydantic import BaseModelclass Item(BaseModel): name: str description: Optional[str] = None pr原创 2022-03-13 09:08:03 · 5732 阅读 · 2 评论 -
FastAPI学习-5.Path路径参数和数值校验
前言可以使用 Path 为路径参数声明相同类型的校验和元数据,与使用 Query 为查询参数声明更多的校验和元数据的方式差不多。导入 Path首先,从 fastapi 导入 Path:from typing import Optionalfrom fastapi import FastAPI, Path, Queryapp = FastAPI()@app.get("/items/{item_id}")async def read_items( item_id: int = P原创 2022-03-13 09:07:25 · 521 阅读 · 0 评论 -
FastAPI学习-4.get 请求 query params 参数校验
前言get请求在接收参数的时候,需校验用户传过来的参数是否合法查询参数和字符串校验FastAPI 允许你为参数声明额外的信息和校验。让我们以下面的应用程序为例:from typing import Optionalfrom fastapi import FastAPIapp = FastAPI()@app.get("/items/")async def read_items(q: Optional[str] = None): results = {"items": [{"it原创 2022-03-13 09:06:52 · 974 阅读 · 0 评论 -
FastAPI学习-3.get 请求 query params 查询参数
前言get 请求的参数在url 后面带着,一般叫query params 查询参数查询参数声明不属于路径参数的其他函数参数时,它们将被自动解释为"查询字符串"参数from fastapi import FastAPIapp = FastAPI()fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]@app.get("/items/")async def read_item(原创 2022-03-13 09:06:22 · 1902 阅读 · 0 评论 -
FastAPI学习-2.url 上的路径参数
前言在开发restful接口的时候,会遇到接口路径带参数的情况,比如查询单个 book 接口:get /api/v1/book/{id}修改单个 book 接口:put /api/v1/book/{id}删除单个 book 接口: delete /api/v1/book/{id}这里路径里面的 {id} 就是路径参数简单示例可以使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量from fastapi import FastAPIapp = FastAPI()原创 2022-03-06 09:09:05 · 742 阅读 · 0 评论