国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python運(yùn)用fastapi完成上傳圖片

89542767 / 2034人閱讀

  FastAPI是個(gè)現(xiàn)代化的,迅速(性能卓越)pythonweb架構(gòu)。本文運(yùn)用fastapi完成上傳圖片作用,文章中的實(shí)例編碼解讀詳盡,所需要的可以了解一下


  應(yīng)用File完成文件傳送


  應(yīng)用Form表格上傳圖片,fastapi應(yīng)用File獲得上傳文檔。


  特定了參數(shù)類型是bytes:file:bytes=File(),這時(shí)會把文件所有載入到內(nèi)存條,較為適合靜態(tài)資源。


  應(yīng)用File要提前組裝python-multipart


  from fastapi import FastAPI,File
  app=FastAPI()
  app.post("/files/")
  async def create_file(file:bytes=File()):
  return{"file_size":len(file)}


  只要在路徑操作函數(shù)中聲明了變量的類型是bytes且使用了File,則fastapi會將上傳文件的內(nèi)容全部去讀到參數(shù)中。


  使用UploadFile實(shí)現(xiàn)文件上傳


  對于大文件,不適合將文件內(nèi)容全部讀取到內(nèi)存中,此時(shí)使用UploadFile


  from fastapi import FastAPI,UploadFile
  ap=FastAPI()
  app.post("/uploadfile/")
  async def create_upload_file(file:UploadFile):
  return{"filename":file.filename}


  和bytes對比,應(yīng)用UploadFile有以下益處:


  不用使用File()做為途徑實(shí)際操作函數(shù)中參數(shù)初始值


  不把文件信息所有載入到運(yùn)存中,反而是大批量載入一定數(shù)量的數(shù)據(jù)信息,邊寫邊存電腦硬盤。


  能夠獲取文件的數(shù)據(jù)庫。


  該類別的自變量能夠像文檔自變量相同實(shí)際操作。


  UploadFile的特性


  filename:種類是str,用于獲取文件的名稱,例如:myimage.png


  content_type:種類是str,用于獲得文件的類型,例如:image/png


  file:類文件對象,是個(gè)標(biāo)準(zhǔn)化的python文件對象


  除開這幾個(gè)元素屬性外,UploadFile也有3個(gè)async方式:


  write,將str或是bytes提到文檔中


  read:讀文件


  seek:移動光標(biāo)


  close:關(guān)閉文件


  #獲取文件具體內(nèi)容
  contents=awaitmyfile.read()

  設(shè)定上傳圖片是可供選擇的


  設(shè)置默認(rèn)值是None就可以


  from typing import Union
  from fastapi import FastAPI,File,UploadFile
  app=FastAPI()
  app.post("/files/")
  async def create_file(file:Union[bytes,None]=File(default=None)):
  if not file:
  return{"message":"No file sent"}
  else:
  return{"file_size":len(file)}
  app.post("/uploadfile/")
  async def create_upload_file(file:Union[UploadFile,None]=None):
  if not file:
  return{"message":"No upload file sent"}
  else:
  return{"filename":file.filename}
  上傳多個(gè)文件
  參數(shù)的參數(shù)的類型是列表:列表元素是bytes或者UploadFile
  from typing import List
  from fastapi import FastAPI,File,UploadFile
  app=FastAPI()
  app.post("/files/")
  async def create_files(files:List[bytes]=File()):
  return{"file_sizes":[len(file)for file in files]}
  app.post("/uploadfiles/")
  async def create_upload_files(files:List[UploadFile]):
  return{"filenames":[file.filename for file in files]}


  知識要點(diǎn)填補(bǔ)


  1.FastAPI介紹


  FastAPI是啥


  FastAPI是個(gè)現(xiàn)代化的,迅速(性能卓越)pythonweb架構(gòu)。根據(jù)標(biāo)準(zhǔn)化的python類別提醒,應(yīng)用python3.6+搭建API的Web架構(gòu)。


  FastAPI的主要特征如下所示:


  迅速:很高的特性,與NodeJS和Go相當(dāng)(這一十分感謝Starlette和Pydantic),是速度最快的Python架構(gòu)其一。


  迅速編號:將開發(fā)設(shè)計(jì)速率增強(qiáng)約200%到300%。


  更低的bug:降低大概40%的開發(fā)者人為因素造成錯(cuò)誤。


  形象化:強(qiáng)悍的在線編輯器適用,調(diào)節(jié)時(shí)長較短。


  簡易:便于應(yīng)用與學(xué)習(xí)。降低閱讀文章文本文檔的時(shí)間也。


  代碼簡潔:盡量避免編碼反復(fù)。每一個(gè)主要參數(shù)能夠申明好幾個(gè)作用,降低流程的bug。


  健碩:生產(chǎn)制造編碼會一鍵生成互動式文本文檔。


  根據(jù)規(guī)范:根據(jù)并徹底適配API的開放標(biāo)準(zhǔn):OpenAPI和JSON方式。


  FastAPI立在巨人的肩膀:


  Starlette用以搭建Web構(gòu)件。


  Pydantic用以數(shù)據(jù)信息一部分。


  自然環(huán)境提前準(zhǔn)備


  組裝fastapi


  pipinstallfastapi


  對工作環(huán)境,還要1個(gè)ASGI網(wǎng)絡(luò)服務(wù)器,如Uvicorn或Hypercorn


  pipinstall"uvicorn[standard]"


  新手入門實(shí)例程序流程


  新建一個(gè)main.py,編寫如下程序:


  from fastapi import FastAPI
  app=FastAPI()
  app.get("/")
  def read_root():
  return{"Hello":"World"}
  app.get("/items/{item_id}")
  def read_item(item_id:int,q:str=None):
  return{"item_id":item_id,"q":q}

  運(yùn)行程序:


  uvicorn main:app--reload
  INFO:Uvicorn running on http://127.0.0.1:8000(Press CTRL+C to quit)
  INFO:Started reloader process[28720]
  INFO:Started server process[28722]
  INFO:Waiting for application startup.
  INFO:Application startup complete.


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/130280.html

相關(guān)文章

  • 秀的一批,那些你不得不知的 Python 殺手級框架

    摘要:那在屆有哪些被封神的庫呢,今天就給大家介紹十個(gè)堪稱殺手級別的工具包。總之,是一款非常強(qiáng)大且易用的網(wǎng)絡(luò)請求庫。地址最好用的框架。圖像處理,該庫是你的不二之選。 Pyt...

    zeyu 評論0 收藏0
  • 秀的一批,那些你不得不知的 Python 殺手級框架!

    摘要:那在屆有哪些被封神的庫呢,今天就給大家介紹十個(gè)堪稱殺手級別的工具包。該庫是在之上完善的,自此請求就變得異常的簡單,一行代碼即可搞定。這是最流行的網(wǎng)絡(luò)爬蟲框架庫,沒有之一。最好用的框架。圖像處理,該庫是你的不二之選。 文 |?豆豆 來源:Python 技術(shù)「ID: pythonall」 ...

    ninefive 評論0 收藏0
  • App 端自動化的最佳方案,完全解放雙手!

    摘要:前言大家好,我是安果之前寫過一篇文章,文中提出了一種方案,可以實(shí)現(xiàn)每天自動給微信群群發(fā)新聞早報(bào)如何利用爬蟲實(shí)現(xiàn)給微信群發(fā)新聞早報(bào)詳細(xì)但是對于很多人來說,首先編寫一款需要一定的移動端開發(fā)經(jīng)驗(yàn),其次還需要另外編寫無障礙服務(wù)應(yīng)用,如此顯得有一定難1. 前言大家好,我是安果!之前寫過一篇文章,文中提出了一種方案,可以實(shí)現(xiàn)每天自動給微信群群發(fā)新聞早報(bào)如何利用 Python 爬蟲實(shí)現(xiàn)給微信群發(fā)新聞早報(bào)?...

    番茄西紅柿 評論0 收藏2637
  • python 圖片在線轉(zhuǎn)字符畫預(yù)覽

    摘要:文章鏈接關(guān)于圖片轉(zhuǎn)字符畫,相信大家都不陌生,經(jīng)常出現(xiàn)在個(gè)超有趣的項(xiàng)目中。今天我也來實(shí)踐這個(gè)有趣的項(xiàng)目,更進(jìn)一步的是把這個(gè)功能做成一個(gè)在線的網(wǎng)站,直接上傳圖片生成字符畫,在線預(yù)覽可以讓更多的人來體驗(yàn)。至此,生成字符畫的腳本完成了。 文章鏈接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 關(guān)于python圖片轉(zhuǎn)字符畫,相信大家都不陌生...

    CarterLi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<