最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在FastAPI中改變響應(yīng)狀態(tài)碼的兩種方法

 更新時(shí)間:2025年02月26日 09:21:45   作者:夢(mèng)想畫家  
FastAPI,顧名思義,是一個(gè)快速、現(xiàn)代、高性能的web框架,用于用Python構(gòu)建后端api,響應(yīng)狀態(tài)碼是一個(gè)三位數(shù),表示請(qǐng)求的結(jié)果,在這篇簡(jiǎn)明的基于示例的博文中,我將向你展示在FastAPI中更改響應(yīng)狀態(tài)代碼的兩種不同方法,需要的朋友可以參考下

引言

FastAPI,顧名思義,是一個(gè)快速、現(xiàn)代、高性能的web框架,用于用Python構(gòu)建后端api。響應(yīng)狀態(tài)碼是一個(gè)三位數(shù),表示請(qǐng)求的結(jié)果。例如,200表示OK, 404表示未找到,500表示服務(wù)器內(nèi)部錯(cuò)誤。默認(rèn)情況下,F(xiàn)astAPI將為成功請(qǐng)求返回200狀態(tài)碼,為驗(yàn)證錯(cuò)誤返回422狀態(tài)碼。

但是,有時(shí)你可能希望更改狀態(tài)碼以指示不同的結(jié)果。例如,你可能希望為創(chuàng)建新資源的成功POST請(qǐng)求返回201狀態(tài)碼,或者為無(wú)法找到所請(qǐng)求資源的GET請(qǐng)求返回404狀態(tài)碼。在這篇簡(jiǎn)明的基于示例的博文中,我將向你展示在FastAPI中更改響應(yīng)狀態(tài)代碼的兩種不同方法。

使用路由裝飾器的status_code參數(shù)

要更改FastAPI中的響應(yīng)狀態(tài)代碼,可以使用@app中的status_code參數(shù)。@app.get, @app.post 或其他路由裝飾器。status_code參數(shù)接受來(lái)starlette.status模塊的整數(shù)值或常量。例如,要為創(chuàng)建新用戶的POST請(qǐng)求返回201狀態(tài)碼,你可以如下所示:

from fastapi import FastAPI
from starlette.status import HTTP_201_CREATED

# create the FastAPI instance
app = FastAPI()

# set the status code to 201
@app.post("/users", status_code=HTTP_201_CREATED)
def create_user(name: str):
    # some logic to create a new user
    return {"name": name}

在上面的代碼片段中,我從starlette.status模塊中導(dǎo)入了常量HTTP_201_CREATED。starlette.status模塊是starlette框架的一部分,它是FastAPI的一個(gè)依賴。starlette.status模塊為常見(jiàn)的HTTP狀態(tài)碼提供常量,如HTTP_200_OK、HTTP_404_NOT_FOUND等。使用這些常量可以使代碼更具可讀性,并避免拼寫錯(cuò)誤或錯(cuò)誤。例如,我可以寫status_code=HTTP_201_CREATED,而不是寫status_code=201,這樣更具描述性和清晰度。

運(yùn)行下面命令重啟服務(wù):

uvicorn main:app --reload

然后去http://localhost:8000/docs, 可以看到文檔中code的值與我們配置的一致,方便用戶調(diào)試程序。

使用響應(yīng)對(duì)象

在這種方法中,我們使用fastapi模塊中的Response對(duì)象在函數(shù)體中動(dòng)態(tài)設(shè)置狀態(tài)碼。Response對(duì)象有status_code屬性,你可以從starlette.status模塊中分配整數(shù)值或常量狀態(tài)值。

下面的例子返回404狀態(tài)碼的GET請(qǐng)求,不能找到被請(qǐng)求的用戶:

from fastapi import FastAPI, Response
from starlette.status import HTTP_404_NOT_FOUND, HTTP_200_OK

app = FastAPI()


@app.get("/users/{user_id}")
def get_user(user_id: int, response: Response):
    # some logic to get the user by id
    user = None

    if user is None:
        # set the status code
        response.status_code = HTTP_404_NOT_FOUND
        return {"detail": "User not found"}
    else:
        # set the status code
        response.status_code = HTTP_200_OK
        return user

查看文檔,效果與上面一樣。

完整實(shí)戰(zhàn)案例

這是一個(gè)完整的代碼示例,展示了如何在不同的場(chǎng)景下更改FastAPI中的響應(yīng)狀態(tài)代碼:

# main.py

from fastapi import FastAPI, Response
from starlette.status import HTTP_201_CREATED, HTTP_404_NOT_FOUND

app = FastAPI()

# A mock database of users
users = [
    {"id": 1, "name": "Sling Academy"},
    {"id": 2, "name": "Ranni the Witch"},
    {"id": 3, "name": "Khue"},
]


# A helper function to get a user by id
def get_user_by_id(user_id: int):
    for user in users:
        if user["id"] == user_id:
            return user
    return None


# A POST route to create a new user and return a 201 status code
@app.post("/users", status_code=HTTP_201_CREATED)
def create_user(name: str):
    # some logic to create a new user and add it to the database
    new_user = {"id": len(users) + 1, "name": name}
    users.append(new_user)
    return new_user


# A GET route to get a user by id and return either a 200 or a 404 status code
@app.get("/users/{user_id}")
def get_user(user_id: int, response: Response):
    # some logic to get the user by id from the database
    user = get_user_by_id(user_id)
    if user is None:
        response.status_code = HTTP_404_NOT_FOUND
        return {"detail": "User not found"}
    else:
        return user

最后總結(jié)

在本文中,我解釋了如何使用兩種方法在FastAPI中更改響應(yīng)狀態(tài)代碼:路由裝飾器中的status_code參數(shù)和函數(shù)體中的response對(duì)象。你可以根據(jù)自己的需要和偏好使用任何一種方法。更改響應(yīng)狀態(tài)碼可以幫助您更清楚地與客戶端進(jìn)行通信,并遵循RESTful API設(shè)計(jì)的最佳實(shí)踐。

以上就是在FastAPI中改變響應(yīng)狀態(tài)碼的兩種方法的詳細(xì)內(nèi)容,更多關(guān)于FastAPI改變響應(yīng)狀態(tài)碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python機(jī)器學(xué)習(xí)pytorch自定義數(shù)據(jù)加載器

    python機(jī)器學(xué)習(xí)pytorch自定義數(shù)據(jù)加載器

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)pytorch自定義數(shù)據(jù)加載器使用示例學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • python中的整除向下取整的操作方法

    python中的整除向下取整的操作方法

    Python中的//是整數(shù)除法運(yùn)算符,用于執(zhí)行向下取整的除法,返回商的整數(shù)部分,不會(huì)四舍五入,它在分治法、索引計(jì)算和整數(shù)運(yùn)算中非常有用,本文給大家介紹python中的整除向下取整的操作方法,感興趣的朋友一起看看吧
    2025-03-03
  • matplotlib實(shí)現(xiàn)區(qū)域顏色填充

    matplotlib實(shí)現(xiàn)區(qū)域顏色填充

    這篇文章主要為大家詳細(xì)介紹了matplotlib實(shí)現(xiàn)區(qū)域顏色填充,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python繞過(guò)圖片滑動(dòng)驗(yàn)證碼實(shí)現(xiàn)爬取PTA所有題目功能 附源碼

    python繞過(guò)圖片滑動(dòng)驗(yàn)證碼實(shí)現(xiàn)爬取PTA所有題目功能 附源碼

    這篇文章主要介紹了python繞過(guò)圖片滑動(dòng)驗(yàn)證碼實(shí)現(xiàn)爬取PTA所有題目 附源碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • pandas?dataframe獲取所有行名稱與列名稱方法示例

    pandas?dataframe獲取所有行名稱與列名稱方法示例

    這篇文章主要給大家介紹了關(guān)于pandas?dataframe獲取所有行名稱與列名稱的相關(guān)資料,Pandas是Python中用于數(shù)據(jù)分析的非常重要的庫(kù),它提供了多種方法來(lái)獲取列名,需要的朋友可以參考下
    2023-09-09
  • 使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成)

    使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成)

    這篇文章主要介紹了使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • python操作 hbase 數(shù)據(jù)的方法

    python操作 hbase 數(shù)據(jù)的方法

    下面小編就為大家?guī)?lái)一篇python操作 hbase 數(shù)據(jù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • python列表的逆序遍歷實(shí)現(xiàn)

    python列表的逆序遍歷實(shí)現(xiàn)

    這篇文章主要介紹了python列表的逆序遍歷實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • pandas通過(guò)字典生成dataframe的方法步驟

    pandas通過(guò)字典生成dataframe的方法步驟

    這篇文章主要介紹了pandas通過(guò)字典生成dataframe的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python使用PIL庫(kù)拼接圖片的詳細(xì)教程

    Python使用PIL庫(kù)拼接圖片的詳細(xì)教程

    在圖像處理中,拼接圖片是一項(xiàng)常見(jiàn)的任務(wù),無(wú)論是為了創(chuàng)建全景圖、合并多張圖片,還是為了展示對(duì)比,拼接圖片都能帶來(lái)很大的便利,Python的Pillow庫(kù)(PIL的一個(gè)分支)提供了強(qiáng)大的圖像處理功能,包括圖片的拼接,下面是一個(gè)詳細(xì)的教程,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

仙居县| 同心县| 伊吾县| 荃湾区| 枣强县| 阳山县| 齐齐哈尔市| 庆安县| 南汇区| 宁晋县| 西吉县| 姚安县| 富源县| 商水县| 青河县| 青海省| 卢龙县| 长丰县| 丹凤县| 恩平市| 额尔古纳市| 徐州市| 道孚县| 新巴尔虎左旗| 淮安市| 定结县| 天长市| 民和| 平安县| 东平县| 宜都市| 手机| 婺源县| 从江县| 沿河| 无棣县| 峨眉山市| 延寿县| 金湖县| 万载县| 浠水县|