我正在处理具有图像上传字段的烧瓶表单,当我提交表单时,此data
的{{1}}属性设置为FileField
。根据烧瓶文件。
Flask-WTF提供的FileField与WTForms提供的不同 领域。它将检查文件是否为的非空实例 FileStorage,否则数据将为None。
所以我在代码中签入了这个None
,并返回了isinstance(form.profile_picture, FileStorage)
。
下面是相关的代码片段
Forms.py
false
views.py
from flask_wtf import FlaskForm
from wtforms import PasswordField, StringField, SubmitField, TextAreaField
from wtforms.validators import DataRequired, Email, EqualTo, length
from flask_wtf.file import FileField, FileAllowed
class EditProfileForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
about_me = TextAreaField('About Me', validators=[DataRequired(),
length(min=10, max=1000)])
profile_picture = FileField('Profile Picture', validators=[FileAllowed([
'jpg', 'png'])])
update = SubmitField('Update')
那么我在这里想念什么吗?我也遇到了这个问题Flask-WTF FileField does not set data attribute to an instance of Werkzeug FileStorage,但这不是我的问题,因为我没有使用任何数据初始化表单。
答案 0 :(得分:0)
解决方案非常简单,我没有在模板文件的form
中提到正确的编码类型。
这解决了我的问题。
<form method='POST' action='' enctype=multipart/form-data>