ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FastAPI响应系列(二) 响应状态码

2021-06-13 17:36:30  阅读:319  来源: 互联网

标签:status 200 code 系列 状态 FastAPI 响应 task


一、默认响应状态码

 响应状态码用于服务器返回给客户端响应的状态,常用的有:

  • 200及以上   成功的响应
  • 300及以上   重定向
  • 400及以上   客户端错误
  • 500及以上   服务端错误

FastAPI的路径操作中可以使用status_code参数来声明HTTP状态码。FastAPI中可以通过状态码数字、状态码变量方式来使用。

1、状态码数字

from fastapi import FastAPI

app = FastAPI()


@app.post("/status_code/", status_code=200)
async def status_code():
    return {"status_code": 200}

2、状态码变量

如果不记得具体的数字,此时可以使用提供的变量形式。

from fastapi import FastAPI, status

app = FastAPI()


@app.post("/status_attribute/", status_code=status.HTTP_200_OK)
async def status_code():
    return {"status_code": status.HTTP_200_OK}

这与上面的数字效果是一样的。两种方式都可以,其表现形式如下:

二、自定义响应状态码 

  在某些情况下可能需要返回与默认状态码不同的状态码。比如,你希望返回默认的HTTP状态码200,但是如果数据不存在,你需要创建它并且返回创建的HTTP状态码201,此时你可以使用参数Response。

from fastapi import FastAPI, Response, status

app = FastAPI()

tasks = {"k1": "v1"}


@app.put("/get_or_create_task/{task_id}", status_code=200)
def get_or_create_task(task_id: str, response: Response):
    if task_id not in tasks:
        tasks[task_id] = "this task not in tasks before"
        response.status_code = status.HTTP_201_CREATED
    return tasks

此时访问该api:

 

标签:status,200,code,系列,状态,FastAPI,响应,task
来源: https://www.cnblogs.com/shenjianping/p/14880215.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有