4.7 自定义 Response 类型 五. 后台异步任务 六. LifeSpan 上下文管理器 本系列「FastAPI 基础篇」的上一篇文章我们了解了 FastAPI 实例的配置参数、路由端点的注册方式、多应用挂载方式,最后还介绍了使用 Pydantic 读取和校验配置项。 山药鱼儿:「FastAPI 基础篇」FastAPI 框架基础(一)3 赞同 · 6 评论文章 除了...
上面的栗子中,Response Header 的 Content-type 将为 text/html,并且会记录在 OpenAPI 中 查看Swagger API 文档的 Response Header 请求结果 源码 只是声明了下 media_type,其他都没变 返回自定义 Response 的第二种方式 背景 上面的两个栗子是通过在路径操作装饰器的 response_class 来声明 Response @app.get("...
app = FastAPI()@app.get("/", response_class=PlainTextResponse)asyncdefmain():return"Hello World" 在这个例子中,HTTP 头的Content-Type会被设置成text/plain。 JSON 响应 除了前面的提到JSONResponse, 还有另外2个 ORJSONResponse是一个使用orjson的快速的可选 JSON 响应。 UJSONResponse是一个使用ujson的可...
添加response_class 和 return Response 综合使用 上面的栗子讲了直接 return Response 的缺点,那么可以结合使用 response_class 来避开问题 代码语言:javascript 复制 #1、声明 response_class @app.get("/items2/",response_class=HTMLResponse)asyncdefread_items():html_content="""SomeHTMLinhereLook ma!HTML!""...
RedirectResponse StreamingResponse、FileResponse ORJSONResponse 作用 如果需要提高性能,可以安装并使用 orjson,并将响应设置为 ORJSONResponse 官方介绍:快速、正确的 Python JSON 库,支持 dataclass、datetime、numpy 注意:仅在FastAPI 才支持 ORJSONResponse,Starlette 并没有它 pip install orjson response_class 可以...
如果在路径操作函数的配置中指定了response_class,甚至可以直接返回文件名: fromfastapiimportFastAPIfromfastapi.responsesimportFileResponsesome_file_path="large-video-file.mp4"app=FastAPI()@app.get("/",response_class=FileResponse)asyncdefmain():returnsome_file_path ...
ORJSONResponse目前只在 FastAPI 中可用,而在 Starlette 中不可用。 HTML 响应¶ 使用HTMLResponse来从FastAPI中直接返回一个 HTML 响应。 导入HTMLResponse。 将HTMLResponse作为你的路径操作的response_class参数传入。 fromfastapiimportFastAPIfromfastapi.responsesimportHTMLResponseapp=FastAPI()@app.get("/items/",...
然后在视图装饰器中使用response_class=ArticleResponse将其配置为视图的响应模型:
app=FastAPI()@app.get("/fastapi",response_class=RedirectResponse)asyncdefredirect_fastapi():return"https://fastapi.tiangolo.com" 这样做的好处,是返回的就是URL字符串,可以很方便地用一个函数对其进行处理。 如果想换成其它的status_code,放到get函数中即可: ...
app = FastAPI(default_response_class=MongoResponse)@app.get("/")async def getDoc(): foo = client.get_database('foo') result = await foo.bar.find_one({'author': 'fool'}) return result当我查看下面的堆栈跟踪时,它似乎仍在使用正常的默认响应,即json response。 查看完整描述...