python - Python Flask - 接收图像作为帖子
问题描述
我无法从我的烧瓶 python 服务器上的表单接收图像。
这是html表单的代码:
<form action="http://localhost:85/upload" method="POST" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="myImage" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
这是服务器的代码
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def main():
return("Welcome!")
@app.route('/upload')
def upload():
try:
# check if the post request has the file part
file = request.files['myImage']
return("Image uploaded")
print("Image uploaded")
except Exception as err:
print("Error occurred")
print(err)
return("Error, image not received.")
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0", port=85)
这是我提交表单时控制台的输出:
"POST /upload HTTP/1.1" 405 -
本质上,只是表明无法访问该站点。当我在不提交图像的情况下转到 url 时,页面正常工作。我不知道我做错了什么。感谢所有帮助。
解决方案
您的路线中缺少方法类型 (POST)。所以它给出了 405,即method not allowed
.
https://flask.palletsprojects.com/en/1.1.x/quickstart/#routing
Web 应用程序在访问 URL 时使用不同的 HTTP 方法。在使用 Flask 时,您应该熟悉 HTTP 方法。默认情况下,路由只响应 GET 请求。您可以使用 route() 装饰器的方法参数来处理不同的 HTTP 方法。
推荐阅读
- kubernetes - kubectl 输出中的静音警告
- angular - 基于字符串的第一个字符的Angular 9路由
- maven - 发生意外错误:Micronaut Data 方法缺少编译时间查询信息
- swift - 如何让应用程序在登录时启动或在安装后添加到登录项,如 Dropbox?Xcode 11、Swift 5、MacOS 10.13+
- javascript - 我应该使用 subecribe 还是 toPromise 来调用服务方法?
- laravel - Laravel Collection whenNotEmpty 和 whenEmpty 在同一个链中
- powershell - Powershell脚本需要根据定义的列表来编辑行中分隔符之间的项目
- http - 如何在 Julia 中发出启用 SSL 的 HTTP 请求?
- javascript - 无法进入 if 语句
- c# - .Net 和 IBM MQ 托管连接 SSL 使用 pfx ca cert