使用Python Fast API發(fā)布API服務的過程詳解
一、安裝 FastAPI 和uvicorn
可以使用 pip 命令進行安裝:
pip install fastapi uvicorn
二、創(chuàng)建 FastAPI 應用程序
例如 main.py
文件:
from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} @app.post("/items/") def create_item(item: Item): return item
在這個例子中,創(chuàng)建了一個 FastAPI 應用程序,并定義了三個路由:`/`,`/items/{item_id}` 和 `/items/`。
`read_root()` 和 `read_item()` 路由使用 `@app.get()` 裝飾器來定義 `GET` 請求處理程序,而
`create_item()` 路由使用 `@app.post()` 裝飾器來定義 `POST` 請求處理程序。
這些路由返回不同的響應內容,包括 JSON 數(shù)據(jù)和 FastAPI 模型對象。
三、啟動FastAPI 應用程序
uvicorn main:app --reload
在這個例子中,我們使用 `uvicorn` 命令來啟動 FastAPI 應用程序,監(jiān)聽 `http://localhost:8000` 地址,并自動重新加載應用程序代碼更改。如果您需要在其他端口上運行應用程序,可以使用 `--port` 參數(shù)來指定端口號。
四、測試
例如,使用 curl
或其他 HTTP 客戶端向您的應用程序發(fā)送請求:
curl http://localhost:8000/ curl http://localhost:8000/items/5?q=somequery curl -X POST http://localhost:8000/items/ -H "Content-Type: application/json" -d '{"name": "item name", "description": "item description"}'
五、問題
1、如果需要被其他機器調用,需要啟動應用程序時指定host
如:uvicorn main:app --host 192.168.10.8 --port 8888 --reload
2、啟動參數(shù) reload的含義
使用 `--reload` 參數(shù)啟動 `uvicorn` 服務器時,它會監(jiān)視應用程序代碼的更改,并在代碼更改時自動重新加載服務器,以便不必手動重新啟動服務器。
到此這篇關于使用Python Fast API發(fā)布API服務的文章就介紹到這了,更多相關Python Fast API發(fā)布API服務內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python使用for...else跳出雙層嵌套循環(huán)的方法實例
這篇文章主要給大家介紹了關于python使用for...else跳出雙層嵌套循環(huán)的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-05-05python讀取txt文件并取其某一列數(shù)據(jù)的示例
今天小編就為大家分享一篇python讀取txt文件并取其某一列數(shù)據(jù)的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02使用虛擬環(huán)境實現(xiàn)Python版本和依賴庫的兼容
這篇文章主要介紹了使用虛擬環(huán)境實現(xiàn)Python版本和依賴庫的兼容的相關資料,需要的朋友可以參考下2022-12-12python web自制框架之接受url傳遞過來的參數(shù)實例
今天小編就為大家分享一篇python web自制框架之接受url傳遞過來的參數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12python列表推導式實現(xiàn)找出列表中長度大于5的名字
這篇文章主要介紹了python列表推導式實現(xiàn)找出列表中長度大于5的名字,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02