我正在用Flask運行一個服務器,使用的代碼如下:
我正在用Flask運行一個服務器,使用的代碼如下:
from flask import Flask, flash, request, redirect, url_for
app = Flask(__name__)
def upload_file()。
# check if the post request has the file part.
print(request.files.__dict__)
print(request.form.__dict__)
print(request.data)
return ""
app.run(host='0.0.0.0', port=5000) 。
我用 "python server2.py "命令運行它,其中server2.py是上面的服務器代碼。 我在一個安裝了 Flask 的虛擬環境中。
在同一臺機器上的一個單獨的 shell 中,在命令列,我運行:
curl -F [email protected] http://192.168.1.25:5000
我希望在第一條列印陳述句中看到一些東西,也就是request.files.__dict__的那條陳述句。
然而,我看到的是這樣的輸出:
* Serving Flask app 'server2' (lazy loading)
* 環境:生產
警告:這個是一個開發服務器。不要使用它在生產部署。
使用一個生產型的WSGI服務器代替。
* 除錯模式:關閉
* 運行于所有地址。
警告:這是個開發服務器。請不要使用它在生產部署。
*運行在http://192.168.1.25:5000/ (按CTRL C退出)
{}
{}
b''。
192.168.1. 25 - - [09/Sep/2021 18:58:41] "POST / HTTP/1.1" 200 - Powered by Discuz!
這對我說,curl與我的服務器進行了通信,并且服務器接受了通信(200),但是,服務器沒有在request.files.__dict__中放入任何東西。
誰能幫助我理解為什么這個簡短的Flask程式沒有以我期望的方式與curl進行通信?
謝謝!
uj5u.com熱心網友回復:
一切都按預期進行,除了你試圖讀取資料的方式。
你需要通過request.files["onlyFile"]來訪問資料,
request.files不是一個標準的 Python dict,而是一個 ImmutableMultiDict。
我怎么知道?我設定了一個斷點,并檢查了 request 的狀態。
這并不難。
https://www.youtube.com/watch?v=Fxkco-gS4S8
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331037.html
標籤:
下一篇:資料庫查詢多引數、多模型
