一、簡介
FastAPI 是一個高性能 Web 框架,用於構建 API。
主要特性:
- 快速:非常高的性能,與 NodeJS 和 Go 相當
- 快速編碼:將功能開發速度提高約 200% 至 300%
- 更少的錯誤:減少約 40% 的人為錯誤
- 直觀:強大的編輯器支持,自動補全無處不在,調試時間更少
- 簡易:旨在易於使用和學習,減少閱讀文檔的時間。
- 簡短:減少代碼重復。
- 穩健:獲取可用於生產環境的代碼,具有自動交互式文檔
- 基於標准:基於並完全兼容 API 的開放標准 OpenAPI 和 JSON Schema
官方鏈接:https://fastapi.tiangolo.com/
二、第一個Hello World
注意事項,因為FastAPI僅支持Python3.6+的API,所以需要再Python3.6+的環境進行學習實踐!
安裝依賴
FastAPI - 是一個現代的,快速(高性能)python web框架
pip3 install fastapi
uvicorn - 主要用於加載和提供應用程序的服務器.
pip3 install uvicorn
Hello World
main.py
import uvicorn from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} if __name__ == '__main__': uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)
參數解釋:
app = FastAPI() 用於實例化 FastAPI類,通常app這個變量會設置成全局的,至少在當前模塊作用域有效。
@app.get("/") 是一個裝飾器,在這里的作用是將普通的Python函數變成一個get請求接口 ("/")表示url是根目錄主頁。
至於函數里的代碼就很好理解了,定義了一個函數,然后return 了一個字典,表示接口被訪問時默認會返回一個JSON格式的數據回去(當然也可以return別的數據格式,例如字符串、列表等)。
uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)
表示使用uvicorn啟動當前目錄下main.py這個文件里的app實例
reload=True的意思是文件內容變更后自動重啟服務,便於開發調試。
啟動程序,使用pycharm啟動,或者在命令行模式下啟動
python3 main.py
訪問首頁
http://127.0.0.1:8000/
效果如下:
API文檔交互
你將會看到自動生成的API交互文檔(由 Swagger UI提供):
可選的API文檔
http://127.0.0.1:8000/redoc
你將會看到自動生成的可選的API文檔(由(provided by ReDoc提供):
本文參考鏈接:
http://www.zyiz.net/tech/detail-119883.html
https://www.jianshu.com/p/94710ed35b92