FastAPI搭建文件上傳服務器

本文共435個字,預計閱讀時間需要2分鐘。
FastAPI 是一個高性能 Web 框架,也是一個Python包,用於構建 API,適合利用極少的代碼搭建服務器後端,實現前後端分離。
在這裏插入圖片描述

下面給出了一個任務:利用FastAPI搭建文件上傳服務器,給出上傳接口,並保存到服務器指定位置。

需要使用的Python包:fastapi和uvicorn。

服務器代碼

其中with open(file.filename, “wb”)是將客戶上傳的文件保存起來,上傳的url地址爲host:port/file_upload,可以自定義端口和host。

注意如果在前端配置的時候出現跨域問題需要添加FastAPI跨域規則。

import time
import uvicorn
from fastapi import FastAPI, File, UploadFile

app = FastAPI()


@app.post("/file_upload")
async def file_upload(file: UploadFile = File(...)):
    start = time.time()
    try:
        res = await file.read()
        with open(file.filename, "wb") as f:
            f.write(res)
        return {"message": "success", 'time': time.time() - start, 'filename': file.filename}
    except Exception as e:
        return {"message": str(e), 'time': time.time() - start, 'filename': file.filename}


if __name__ == '__main__':
    uvicorn.run(app=app, host="127.0.0.1", port=8000, workers=1)

客戶端代碼示例

此客戶端的需要上傳的文件在path中,url即爲文件上傳的API。

import requests
url = "http://127.0.0.1:8000/file_upload"
path = "C:\\Users\\omegaxyz\\Desktop\\pic.jpeg"
files = {'file': open(path, 'rb')}
r = requests.post(url, files=files)
print(r.url)
print(r.text)

更多內容訪問 omegaxyz.com
網站所有代碼採用Apache 2.0授權
網站文章採用知識共享許可協議BY-NC-SA4.0授權
© 2020 • OmegaXYZ-版權所有 轉載請註明出處

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章