開(kāi)始學(xué)fastapi

大家好,這里是米洛,一個(gè)想和大家一起分享測(cè)試開(kāi)發(fā)相關(guān)的技術(shù),面試經(jīng)驗(yàn)和成長(zhǎng)經(jīng)歷的博主!

歡迎大家關(guān)注我的公眾號(hào): 測(cè)試開(kāi)發(fā)坑貨。

FastApi簡(jiǎn)介

官網(wǎng)地址: https://fastapi.tiangolo.com/zh/

FastApi是最近(具體啥時(shí)候開(kāi)始我也不知道)很火的一個(gè)Python web框架,其實(shí)我對(duì)他了解也不夠多,那咱們來(lái)看看他的官方文檔吧。

image

基本上可以瞅到幾個(gè)關(guān)鍵字,一馬當(dāng)先的就是快。那么她有多快呢,這邊寫(xiě)到了Go,我本身呢是個(gè)go語(yǔ)言使用者,身上隨身帶個(gè)if err != nil,很合邏輯吧!

其他的咱們都可以不用看,那都是虛的,其實(shí)我就想知道這玩意有多。是不是真的和他標(biāo)榜的那樣,和go肩并肩。

試水

所以我開(kāi)始了自己的一次嘗試,昨天晚上我特意搭建了一個(gè)FastApi服務(wù),跑了跑。雖然我本身沒(méi)用過(guò)django,但是大概也知道django的全面,各個(gè)組件應(yīng)有盡有,簡(jiǎn)直就是精裝修,拎包入住即可。那FastApi呢?測(cè)試開(kāi)發(fā)干貨群的大佬們形容他是毛坯中的毛坯,意思是啥組件都需要自己寫(xiě),核心庫(kù)比不上Flask多,更別說(shuō)django了,django,yyds!

但是我本身對(duì)于新鮮事物還是很好奇的,所以就忍不住體驗(yàn)了一把。如果這是一篇測(cè)評(píng)文章的話(huà),那我的測(cè)評(píng)進(jìn)度可能才到5%,不過(guò)就算是這樣,我也覺(jué)得FastApi應(yīng)當(dāng)是一款不錯(cuò)的web框架。

愛(ài)之初體驗(yàn)

  • 安裝fastapi
pip install fastapi
  • 安裝uvicorn
pip install uvicorn
  • 新建一個(gè)main.py
from typing import Optional

from fastapi import FastAPI
from pydantic import BaseModel


class Item(BaseModel):
    name: int
    description: Optional[str] = None
    price: float
    tax: Optional[float] = None


app = FastAPI()


@app.post("/items/")
async def create_item(item: Item):
    return item


整體風(fēng)格有點(diǎn)像Flask,所以上手比較快。這個(gè)可能也是我想試試的原因之一。上面的class定義了接受的參數(shù),以往我們用flask接受參數(shù)的話(huà)一般用request.get_data()或者get_json(),其實(shí)我寫(xiě)慣了go之后還是很不習(xí)慣的,因?yàn)槲疫€是認(rèn)為對(duì)象字典好使,而且這個(gè)item對(duì)象實(shí)現(xiàn)了dict()方法,也可以隨時(shí)轉(zhuǎn)為dict。說(shuō)句實(shí)話(huà),這點(diǎn)確實(shí)方便。

image
  • 在main.py同級(jí)目錄啟動(dòng)服務(wù)
uvicorn main:app --reload

--reload參數(shù)指的是熱更新部署,意思是可以在代碼發(fā)生變動(dòng)的時(shí)候自動(dòng)重啟服務(wù),使得代碼生效。

方便還是挺方便的。

看看控制臺(tái)

image

長(zhǎng)的是喜歡的樣子!假設(shè)我更新下代碼:

image

可以看到服務(wù)自動(dòng)reload了。這點(diǎn)還挺方便的~

計(jì)劃

計(jì)劃是把現(xiàn)有的Flask改為FastApi,趁著項(xiàng)目還小,行動(dòng)起來(lái)。有一起學(xué)習(xí)的小伙伴們,麻煩加我一下!我們一起學(xué)!如果不想學(xué)的就幫我點(diǎn)個(gè)贊吧,希望你不要不識(shí)抬舉!(狗頭保命)

To Be Continued

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容