python - Flask wtforms 不允许上传图片
问题描述
亲爱的,我一直在努力在我的应用程序的烧瓶表单上上传图像。我已经简化了代码,只显示表单是否通过打印语句获取了文件。脚本如下:
from flask import Flask, render_template, session, redirect, url_for
from flask_wtf import FlaskForm
from wtforms import SubmitField
from flask_wtf.file import FileField
from PIL import Image
import os
from main import app
class Uploadform(FlaskForm):
picture = FileField('Update Profile Pic')
submit = SubmitField('Submit')
#### route
@app.route('/', methods=['GET', 'POST'])
def upload():
form = Uploadform()
path = app.root_path
if form.validate_on_submit:
print('form submitted')
if form.picture.data:
print('image available')
img = form.picture.data
print(img)
else:
print('no image')
return render_template ('form.html', form=form)
if __name__ == '__main__':
app.run(debug=True)
HTML 表单如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form method="POST" action="{{url_for('upload')}}">
{{ form.hidden_tag() }}
{{ form.csrf_token }}
{{form.picture.label}} <br>
{{form.picture}} <br>
{{form.submit() }} <br>
</form>
</body>
</html>
当我运行上述内容时,我得到打印语句:“提交的表单”和“无图像”
非常感谢您提前提供的帮助。
解决方案
<form method="POST" action="{{url_for('upload')}}" enctype="multipart/form-data">
multipart/form-data
如果用户将通过表单上传文件,则此值是必需的。
推荐阅读
- javascript - 如何将 Github API v4 (graphql) 与 javascript XMLHttpRequest 一起使用
- r - 在 R 中连接两个数据框
- c++ - C++ 警告:对于增量表达式无效 [-Wunused-value]
- javascript - 如何根据我的色标为这个 Plotly Scatter Plot Surface 着色?
- node.js - 有没有办法在 node js 的工作线程中使用 parentPort.on() 和 server.listen()
- memory-management - 多级页表
- react-native - 如何设置视图组件的样式以在两个按钮之间添加空间?
- node.js - API 调用 Node 后端后访问 header 属性
- java - 使用opencv抛出异常将字符串转换为pojo类
- c++ - S3/Minio 性能问题