首页 > 解决方案 > 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 时,页面正常工作。我不知道我做错了什么。感谢所有帮助。

标签: pythonpostflask

解决方案


您的路线中缺少方法类型 (POST)。所以它给出了 405,即method not allowed.

https://flask.palletsprojects.com/en/1.1.x/quickstart/#routing

Web 应用程序在访问 URL 时使用不同的 HTTP 方法。在使用 Flask 时,您应该熟悉 HTTP 方法。默认情况下,路由只响应 GET 请求。您可以使用 route() 装饰器的方法参数来处理不同的 HTTP 方法。


推荐阅读