W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
FastAPI 提供了以下內(nèi)容:
交互式 API 文檔以及具探索性 web 界面。因為該框架是基于 OpenAPI,所以有很多可選項,F(xiàn)astAPI 默認自帶兩個交互式 API 文檔。
全部都基于標準的 Python 3.6 類型聲明(感謝 Pydantic )。沒有新的語法需要學(xué)習(xí)。只需要標準的 Python 。
如果你需要2分鐘來學(xué)習(xí)如何使用 Python 類型(即使你不使用 FastAPI ),看看這個簡短的教程:Python Types。
編寫帶有類型標注的標準 Python:
from datetime import date
from pydantic import BaseModel
# Declare a variable as a str
# and get editor support inside the function
def main(user_id: str):
return user_id
# A Pydantic model
class User(BaseModel):
id: int
name: str
joined: date
可以像這樣來使用:
my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
second_user_data = {
"id": 4,
"name": "Mary",
"joined": "2018-11-30",
}
my_second_user: User = User(**second_user_data)
Info
**second_user_data 意思是:
直接將second_user_data字典的鍵和值直接作為key-value參數(shù)傳遞,等同于:User(id=4, name="Mary", joined="2018-11-30")
整個框架都被設(shè)計得易于使用且直觀,所有的決定都在開發(fā)之前就在多個編輯器上進行了測試,來確保最佳的開發(fā)體驗。
在最近的 Python 開發(fā)者調(diào)查中,我們能看到 被使用最多的功能是"自動補全"。
整個 FastAPI 框架就是基于這一點的。任何地方都可以進行自動補全。
你幾乎不需要經(jīng)?;貋砜次臋n。
在這里,你的編輯器可能會這樣幫助你:
你將能進行代碼補全,這是在之前你可能曾認為不可能的事。例如,在來自請求 JSON 體(可能是嵌套的)中的鍵 price。
不會再輸錯鍵名,來回翻看文檔,或者來回滾動尋找你最后使用的 username 或者 user_name 。
任何類型都有合理的默認值,任何和地方都有可選配置。所有的參數(shù)被微調(diào),來滿足你的需求,定義成你需要的 API。
但是默認情況下,一切都能“順利工作”。
所有的校驗都由完善且強大的 Pydantic 處理。
集成了安全性和身份認證。杜絕數(shù)據(jù)庫或者數(shù)據(jù)模型的滲透風(fēng)險。
OpenAPI 中定義的安全模式,包括:
加上來自 Starlette(包括 session cookie)的所有安全特性。
所有的這些都是可復(fù)用的工具和組件,可以輕松與你的系統(tǒng),數(shù)據(jù)倉庫,關(guān)系型以及 NoSQL 數(shù)據(jù)庫等等集成。
FastAPI 有一個使用非常簡單,但是非常強大的依賴注入系統(tǒng)。
或者說,導(dǎo)入并使用你需要的代碼,而不需要它們。
任何集成都被設(shè)計得被易于使用(用依賴關(guān)系),你可以用和路徑操作相同的結(jié)構(gòu)和語法,在兩行代碼中為你的應(yīng)用創(chuàng)建一個“插件”。
FastAPI 和 Starlette 完全兼容(并基于)。所以,你有的其他的 Starlette 代碼也能正常工作。FastAPI 實際上是 Starlette的一個子類。所以,如果你已經(jīng)知道或者使用 Starlette,大部分的功能會以相同的方式工作。
通過 FastAPI 你可以獲得所有 Starlette 的特性 ( FastAPI 就像加強版的 Starlette ):
FastAPI 和 Pydantic 完全兼容(并基于)。所以,你有的其他的 Pydantic 代碼也能正常工作。
兼容包括基于 Pydantic 的外部庫, 例如用與數(shù)據(jù)庫的 ORMs, ODMs。
這也意味著在很多情況下,你可以將從請求中獲得的相同對象直接傳到數(shù)據(jù)庫,因為所有的驗證都是自動的。
反之亦然,在很多情況下,你也可以將從數(shù)據(jù)庫中獲取的對象直接傳到客戶端。
通過 FastAPI 你可以獲得所有 Pydantic (FastAPI 基于 Pydantic 做了所有的數(shù)據(jù)處理):
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: