前言
為啥要學它呢,因為學 Flask 的時候發現有人更推薦它代替 Flask,看了下介紹,感覺很強,而且也能拿來做平台,當然學起來!卷起來!
為什么要使用 FastAPI ?
- 日漸沒落的是后端 HTML 渲染這種方式,比如 Flask + Jinja2
- 前后端分離成為主流
- 異步框架
官方地址
FastAPI 是什么?
- FastAPI是一個現代、快速(高性能)的web框架
- 用於基於標准 Python 類型提示使用 Python 3.6+ 構建API
FastAPI 版本要求
支持 Python 3.6+
FastAPI 優點
直接搬官網
- 類型檢查、自動 swagger UI、支持 asyncio、強大的依賴注入系統
- 圍繞着框架本身的插件生態,比如 pydantic,sqlalchemy,成熟
- 速度快:非常高的性能,與 NodeJS 和 Go 不相上下,多虧 Starlette 和 Pydantic,FastAPI 是最快的 Python 框架之一;
- 編碼快:將開發特性所需的速度提高大約 200% 到 300%;
- 錯誤少:減少大約 40% 的人為(開發)錯誤;
- 直觀:強大的編輯器支持,支持多場景開發,調試所花的時間更少;
- 簡單:被設計為易於使用和學習,減少閱讀文檔的時間;
- 代碼少:最小化重復,更少的錯誤;
- 健壯:代碼可隨時部署到生產環境,並自動提供交互文檔;
- 標准:基於(並完全兼容) api 的開放標准:OpenAPI (以前稱為 Swagger )和 JSON 模式
Pydantic 在 FastAPI
- FastAPI 是完全建立在 Pydantic 的基礎之上的
- Pydantic 是一個用來用來執行數據校驗的 Python 庫,具體教程可看:https://www.cnblogs.com/poloyy/tag/Pydantic/
Type Hints 在 FastAPI
- Type Hints 介紹:https://www.cnblogs.com/poloyy/p/15145380.html
- typing 模塊:https://www.cnblogs.com/poloyy/p/15150315.html
使用 FastAPI 時用 Type Hints 聲明參數可以獲得
- 編輯器支持智能提示,錯誤檢查
- 類型檢查,不對會報 warning
FastAPI 還會用類型提示來做
- 定義參數要求:聲明對請求路徑參數、查詢參數、請求頭、請求體、依賴等的要求
- 轉換數據:將來自請求的數據轉換為需要的類型
- 校驗數據: 對於每一個請求當數據校驗失敗時自動生成錯誤信息返回給客戶端
- 使用 OpenAPI 記錄 API:然后用於自動生成交互式文檔的用戶界面,參數會顯示對應的類型注釋