FastApi-01-初識

這是我參與8月更文挑戰的第1天,活動詳情查看:8月更文挑戰python

FastApi是什麼

顧名思義,FastApi就是一個用於構建高性能api的web框架。web

FastApi的特色

  • 快速:比肩NodeJs和Go
  • 高效:開發效率提高一倍多
  • 少BUG:減小開發錯誤率
  • 智能:自動補全
  • 簡單:易於學習
  • 簡短:代碼簡小精悍
  • 健壯:生產級別可用
  • 文檔:自動生成交互式文檔
  • 標準化:基於OpenApi

FastApi的安裝

pip install fastapi[all]
複製代碼

FastApi之hello world

main.py

from fastapi import FastAPI

app = FastAPI()

@app.get('/')
async def root():
    return {'message':'hello world!'}
複製代碼

命令行啓動

uvicorn.exe main:app --reload
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [18784] using statreload
INFO:     Started server process [23504]
INFO:     Waiting for application startup.
INFO:     Application startup complete.   
複製代碼

打開 http://127.0.0.1:8000 查看效果api

能夠看到,後臺程序已經成功返回。瀏覽器

主函數啓動

from fastapi import FastAPI
import uvicorn

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=8765,reload=True,debug=True)
複製代碼

啓動:markdown

python main.py
複製代碼

交互式的API文檔

docs

瀏覽器訪問:127.0.0.1:8765/docs併發

展開看下接口詳細信息app

點擊右側的Try it框架

便可實現接口調試!async

完美!ide

redoc

瀏覽器訪問:127.0.0.1:8765/redoc

FastApi和Flask的區別

常常看到有人把 FastAPI 和 Flask 放到一塊兒比較,可是卻沒有意識到這徹底是兩種東西——前者是基於 Web 框架 Starlette 添加了 Web API 功能支持的(框架之上的)框架,然後者是和 Starlette 同類的通用 Web 框架,因此他兩本就不是相同的東西,因此仍是不要強行比較,選擇適合本身的纔是正確的。

至於說FastApi使用了asyncio而使得它的性能提高很大,在我看來沒有網上介紹的那麼誇張。由於在gevent的加持下,其餘web框架也能夠作到很高的併發,何況通常的服務都是會藉助中間件和集羣來實現高併發的,因此對於FastApi的高性能你們仍是理性看待。感興趣的同窗能夠去測試看看實際的結果。

本系列主要是介紹FastApi這個新的web框架,讓你們可以對它有所瞭解,從而合理使用。

至此,FastApi的簡單介紹結束。

感謝您的閱讀,別忘了關注,點贊,評論,轉發四連喲!

相關文章
相關標籤/搜索