国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python - FastAPI 實現(xiàn) get、post 請求

這篇具有很好參考價值的文章主要介紹了Python - FastAPI 實現(xiàn) get、post 請求。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

fastapi post請求,Python,常用語法,post,get,FastAPI

目錄

一.引言

二.FastAPI Server 構(gòu)建

1.get - read_items

2.post - create_item

3.uvicorn - run_app

三.Postman 請求

1.post - create_item

2.get - read_items

四.Requests 請求

1.post - create_item

2.get - read_items

五.總結(jié)


一.引言

前面介紹了 LLM 的相關(guān)知識,從樣本加載、模型加載到后面的模型訓(xùn)練與模型推理,我們經(jīng)歷的完整的 LLM LoRA 微調(diào)與推理流程?;谇懊娴念A(yù)訓(xùn)練模型,我們嘗試使用 FastAPI 構(gòu)建接口服務(wù),本文主要介紹最基本的 FastAPI get、post 用法,后續(xù)介紹完整的 server 部署。

二.FastAPI Server 構(gòu)建

下面我們構(gòu)建一個 API 服務(wù),共包含兩個方法:

read_items?- 將 items 數(shù)組的元素打印出來

create_item?- 向 items 數(shù)組添加一個元素

1.get - read_items

get 方法是 HTTP 請求的一種類型,通常用語從服務(wù)器獲取數(shù)據(jù)。由于 read_items 方法是從服務(wù)器獲取 items 數(shù)組,所以其對應(yīng) get 請求。get 請求通常沒有請求體,所有參數(shù)都放在 URL 的查詢字符串中,所以存在一定的安全性問題。

# -*- coding: utf-8 -*-
from fastapi import FastAPI, Form

app = FastAPI()

# 示例數(shù)據(jù)
items = []


# GET 請求
@app.get("/items")
async def read_items():
    return items

2.post - create_item

post 方法是區(qū)別于 get 的另一種 HTTP 請求類型,通常用于向服務(wù)器發(fā)送數(shù)據(jù)。post 通常包含一個請求體,傳輸?shù)膮?shù)不需要通過 '?' 顯式的體現(xiàn)在請求的 URL 中,而是可以通過 JSON 對象傳遞,相對 get 方法更加安全。與 get 相比,post 操作不是冪等的,其每次執(zhí)行完可能得到不同的結(jié)果,而 get 操作則通常認為是冪等的,這意味著多次執(zhí)行 get 得到的結(jié)果應(yīng)該是相同的。

# POST 請求
@app.post("/items")
async def create_item(item: str = Form(None)):
    items.append(item)
    return {"message": "Item created successfully: {}".format(str(item))}

這里 Post 請求成功后會有成功的提示并打印成功添加的 item。

3.uvicorn - run_app

uvicorn.run(app, host="192.XXX.XXX", port=8001) 方法是 uvicorn 的命令行接口。其中,app 是你想要運行的應(yīng)用對象,對應(yīng)我們上面的 FastAPI 的 get 與 post 對應(yīng)的方法,host 和 port 則是服務(wù)將要監(jiān)聽的 IP 地址和端口。該方法會啟動一個 ASGI 服務(wù)器,以指定的 host 和 port 為你的應(yīng)用提供服務(wù)。后續(xù)的 HTTP 請求的 URL 也是基于上面的 host 和 port 組成。下面我們在本機起一個 FastAPI 服務(wù)。

if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=7788)

運行主函數(shù)后出現(xiàn)如下提示代表 Server 啟動成功,我們后續(xù)對應(yīng)的 HTTP 請求 URL 為圖中藍色鏈接 http://0.0.0.0:7788:?

fastapi post請求,Python,常用語法,post,get,FastAPI

三.Postman 請求

針對上面構(gòu)建的 HTTP 服務(wù),我們可以通過顯示的 App 例如 postman 進行 get 和 post 請求。

1.post - create_item

fastapi post請求,Python,常用語法,post,get,FastAPI

打開 postman 選擇 POST?命令,輸入對應(yīng)的 URL + 函數(shù)對應(yīng)的路徑,上面 get 和 post 請求對應(yīng)的路徑都是 URL + items,在對應(yīng) form-data 處傳遞要添加的 item,注意這里 key 要和函數(shù)定義的參數(shù)名稱完全對應(yīng),否則會報錯。執(zhí)行 send 按鈕發(fā)送 Http 請求,從返回的 Body 中我們看到成功添加 python 到 items 列表中。后面我們修改 value 為 'java' 和 'c++' 并依次發(fā)送 post 指令。

fastapi post請求,Python,常用語法,post,get,FastAPI

server 端也要每次請求的具體信息,status_code == 200 代表請求成功。

2.get - read_items

fastapi post請求,Python,常用語法,post,get,FastAPI

將請求模式切換為 GET,由于 get 命令未傳參數(shù),所以直接輸入對應(yīng)地址 Send 發(fā)送請求即可。返回的結(jié)果中包含我們上面添加的三個元素:python、java、c++。server 端也增加對應(yīng)的 get 請求日志:

fastapi post請求,Python,常用語法,post,get,FastAPI

四.Requests 請求

上面 Postman 采用顯式的頁面方式向 server 發(fā)送 HTTP 請求并獲取結(jié)果,更常規(guī)的做法是通過 requests 庫使用代碼發(fā)送請求并處理返回結(jié)果。

1.post - create_item

def post(text):
    url = 'http://0.0.0.0:7788/items'

    # 構(gòu)建請求數(shù)據(jù)
    data = {
        'item': text
    }

    # 發(fā)送 post 請求
    response = requests.post(url=url, data=data, timeout=10)

    # 檢查響應(yīng)狀態(tài)
    if response.status_code == 200:
        print('請求成功')
        print(response.json())
    else:
        print('請求失敗,狀態(tài)碼:', response.status_code)

requests.post 添加對應(yīng) url 與 data,data 為 map 形式,其中要包含 post 函數(shù)對應(yīng)的 key,結(jié)尾處會根據(jù) status_code 判斷請求是否成功。從 server 日志可以看出這一次 create_item 也執(zhí)行成功了:

fastapi post請求,Python,常用語法,post,get,FastAPI

2.get - read_items

def get():
    url = 'http://0.0.0.0:7788/items'
    response = requests.get(url)

    if response.status_code == 200:
        data = response.json()
        print('成功獲取,返回:', data)
    else:
        print('請求失敗,狀態(tài)碼:', response.status_code)

requests.get 直接傳入對應(yīng) url 即可獲取對應(yīng)信息:

fastapi post請求,Python,常用語法,post,get,FastAPI

server 端如下日志代表本次 get 請求成功:?

fastapi post請求,Python,常用語法,post,get,FastAPI

五.總結(jié)

上面介紹了如何使用 FastAPI 搭建簡單的 Server Demo,后續(xù)基于該方法構(gòu)建 LLM Server。文章來源地址http://www.zghlxwxcb.cn/news/detail-753767.html

到了這里,關(guān)于Python - FastAPI 實現(xiàn) get、post 請求的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【FastAPI】P3 請求與響應(yīng)

    【FastAPI】P3 請求與響應(yīng)

    在網(wǎng)絡(luò)通訊中, 請求(Request) 與 響應(yīng)(Response) 扮演著至關(guān)重要的角色,它們構(gòu)成了客戶端與服務(wù)器間互動的根本理念。 請求 ,指的是客戶端向服務(wù)器請求數(shù)據(jù); 響應(yīng) ,指的是服務(wù)器發(fā)送給客戶端的 HTTP 響應(yīng); 總的來說,當客戶端向服務(wù)器發(fā)送一個 HTTP 請求時,服務(wù)器

    2024年02月21日
    瀏覽(13)
  • fastApi筆記06-請求體-多個參數(shù)

    ?當函數(shù)有多個請求實體(多個?Pydantic 模型參數(shù)),將使用參數(shù)名稱作為請求體中的鍵(字段名稱),并期望一個類似于以下內(nèi)容的請求體 ?假如為了拓展先前的模型,除了user和item之外,在請求體中增加一個字段importance,需要使用Body來聲明,不然會被當做查詢參數(shù) ?假如

    2024年02月21日
    瀏覽(13)
  • Web:前端常用的幾種Http請求GET和POST樣例

    Web:前端常用的幾種Http請求GET和POST樣例

    1、簡述 在Web開發(fā)過程中,少不了發(fā)起Http請求服務(wù)端的接口數(shù)據(jù),在不同的框架中使用了不同的Http請求方式,常用的請求有fetch、 ajax、 axios、XMLHttpRequest、request,以下樣例僅供參考。 2、Fetch Fetch API 是一種 JavaScript API,是一種基于 Promise 的現(xiàn)代API,用于在網(wǎng)絡(luò)中發(fā)送和接收

    2024年02月07日
    瀏覽(16)
  • 【python】fastapi response返回文本、音視頻多媒體資源實現(xiàn)

    HTMLResponse 是FastAPI中自帶的一個響應(yīng)類,用于返回HTML格式的響應(yīng)。使用方法如下: 在上面的例子中,我們在裝飾器中指定了 response_class=HTMLResponse ,表示我們需要返回一個HTML響應(yīng)。然后在函數(shù)中,我們返回了一個HTML格式的字符串。FastAPI會自動將這個字符串封裝成一個 HTMLR

    2023年04月27日
    瀏覽(27)
  • Python爬蟲requests判斷請求超時并重新post/get發(fā)送請求

    在上面的示例中,send_request_get函數(shù)接受一個URL作為參數(shù),并可選地指定最大重試次數(shù)和超時時間。函數(shù)使用 requests.get 發(fā)送GET請求,并設(shè)置了超時時間為5秒。如果請求超時,會捕獲 requests.exceptions.Timeout 異常,并輸出重試信息。如果發(fā)生其他異常,會捕獲 requests.exceptions.Req

    2024年02月11日
    瀏覽(34)
  • Qt實現(xiàn)HTTP的Get/Post請求

    借助Qt的NetWork模塊,可以輕松的實現(xiàn)HTTP的Get/Post請求,而不需要再次引用像libcurl這樣的第三方庫。 當然,Qt的NetWork模塊提供的功能遠遠不只是HTTP方面的。 另外,使用Qt網(wǎng)絡(luò)模塊還需要引用Qt5Network.lib庫。 先構(gòu)造一個QNetworkAccessManager對象,QNetworkAccessManager對象提供了發(fā)送QNe

    2024年02月07日
    瀏覽(21)
  • 使用Python接口自動化測試post請求和get請求,獲取請求返回值

    使用Python接口自動化測試post請求和get請求,獲取請求返回值

    目錄 引言 請求接口為Post時,傳參方法 ?獲取接口請求響應(yīng)數(shù)據(jù) 我們在做python接口自動化測試時,接口的請求方法有g(shù)et,post等;get和post請求傳參,和獲取接口響應(yīng)數(shù)據(jù)的方法; 我們在使用python中requests庫做接口測試時,在做post接口測試傳參的時候,需要傳入請求體,我們把

    2024年02月02日
    瀏覽(33)
  • curl c++ 實現(xiàn)HTTP GET和POST請求

    環(huán)境配置 curl //DV2020T環(huán)境下此步驟可省略 https://curl.se/download/ 筆者安裝為7.85.0版本 ./configure --without-ssl make sudo make install sudo rm /usr/local/lib/curl 系統(tǒng)也有curl庫,為防止沖突,刪去編譯好的curl庫。 對以json數(shù)據(jù)的解析使用開源項目:https://github.com/nlohmann/json cd single_include 在這個文

    2024年03月12日
    瀏覽(24)
  • QT實現(xiàn)客戶端服務(wù)器HTTP(get請求、post請求)

    QT實現(xiàn)客戶端服務(wù)器HTTP(get請求、post請求)

    服務(wù)器代碼如下: QtHttpForS.h QtHttpForS.cpp main.cpp QtHttpForS.ui 客戶端代碼: QtHttpForC.h QtHttpForC.cpp mian.cpp QtHttpForC.ui 程序運行效果: GET請求: POST請求: POST請求使用postman測試: 注意: 可以發(fā)現(xiàn),在使用postman進行POST請求發(fā)送時,服務(wù)器接收到的請求頭與QTSocket的POST請求的請求頭

    2023年04月22日
    瀏覽(23)
  • 【Python爬蟲開發(fā)基礎(chǔ)?】requests庫概述(GET和POST請求)

    ?? 個人主頁 :為夢而生~ 關(guān)注我一起學(xué)習(xí)吧! ?? 專欄 :python網(wǎng)絡(luò)爬蟲從基礎(chǔ)到實戰(zhàn) 歡迎訂閱!后面的內(nèi)容會越來越有意思~ ?? 往期推薦 : ??前面比較重要的 基礎(chǔ)內(nèi)容 : 【Python爬蟲開發(fā)基礎(chǔ)⑥】計算機網(wǎng)絡(luò)基礎(chǔ)(Web和HTTP) 【Python爬蟲開發(fā)基礎(chǔ)⑦】urllib庫的基本使用

    2024年02月12日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包