本文共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-版權所有 轉載請註明出處