2 回答
TA贡献1780条经验 获得超1个赞
路由是根据action给定的
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" multiple="" name="file[]" class="span3" /><br />
<input type="submit" value="Upload" class="span2">
</form>
这里动作被定义为上传,所以flask 寻找任何与动作上传链接的函数/url。
<form action="upload" method="post" enctype="multipart/form-data">
在 app.py 中,您可以找到一个名为 action 的函数,从而在那里执行该函数
@app.route('/upload', methods=['POST'])
def upload():
这也可能与您指定的方法不同。方法可以是GET、POST、PUT。
根据方法动作,可以修改功能
TA贡献1802条经验 获得超4个赞
表单中的操作是通过 POST-Request 将您重定向到一个 url /upload:
<form action="upload" method="post" enctype="multipart/form-data">
现在,gist 中的 upload.html 定义了 /upload 路由:
@app.route('/upload', methods=['POST'])
下面的代码处理上传,比如从 post 请求中获取文件等等。
只需尝试一个简单的页面,单击提交,您就会看到发生了什么:
<html>
<body>
<form action="upload" method="post">
<input type="submit" value="Submit" />
</form>
</body>
</html>
将其另存为 html 文件,在浏览器中打开它并单击提交。您将在浏览器的地址栏中看到“上传”作为路由目标。POST 请求尝试访问此资源,示例中的 upload.html 会处理此问题。
另外,app.py中的注释做了部分说明:
# We'll render HTML templates and access data sent by POST
# using the request object from flask. Redirect and url_for
# will be used to redirect the user once the upload is done
# and send_from_directory will help us to send/show on the
# browser the file that the user just uploaded
添加回答
举报