与指定响应模型的方式相同,你也可以在以下任意的路径操作中使用 status_code 参数来声明用于响应的 HTTP 状态码:
创新互联秉承实现全网价值营销的理念,以专业定制企业官网,成都做网站、成都网站建设,微信小程序开发,网页设计制作,手机网站制作,营销型网站帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。
from fastapi import FastAPI
app = FastAPI()
@app.post("/items/", status_code=201)
async def create_item(name: str):
return {"name": name}
Note
注意,status_code 是「装饰器」方法(get,post 等)的一个参数。不像之前的所有参数和请求体,它不属于路径操作函数。
status_code 参数接收一个表示 HTTP 状态码的数字。
Info
status_code 也能够接收一个 IntEnum 类型,比如 Python 的 http.HTTPStatus。
它将会:
Note
一些响应状态码(请参阅下一部分)表示响应没有响应体。
FastAPI 知道这一点,并将生成表明没有响应体的 OpenAPI 文档。
Note
如果你已经了解什么是 HTTP 状态码,请跳到下一部分。
在 HTTP 协议中,你将发送 3 位数的数字状态码作为响应的一部分。
这些状态码有一个识别它们的关联名称,但是重要的还是数字。
简而言之:
Tip
要了解有关每个状态代码以及适用场景的更多信息,请查看 MDN 关于 HTTP 状态码的文档。
让我们再次看看之前的例子:
from fastapi import FastAPI
app = FastAPI()
@app.post("/items/", status_code=201)
async def create_item(name: str):
return {"name": name}
201 是表示「已创建」的状态码。
但是你不必去记住每个代码的含义。
你可以使用来自 fastapi.status 的便捷变量。
from fastapi import FastAPI, status
app = FastAPI()
@app.post("/items/", status_code=status.HTTP_201_CREATED)
async def create_item(name: str):
return {"name": name}
它们只是一种便捷方式,它们具有同样的数字代码,但是这样使用你就可以使用编辑器的自动补全功能来查找它们:
技术细节
你也可以使用 from starlette import status。
为了给你(即开发者)提供方便,FastAPI 提供了与 starlette.status 完全相同的 fastapi.status。但它直接来自于 Starlette。
稍后,在高级用户指南中你将了解如何返回与在此声明的默认状态码不同的状态码。
网站题目:创新互联FastAPI教程:FastAPI教程响应状态码
分享链接:http://www.mswzjz.cn/qtweb/news24/214724.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能