Flask-uploads - 我一直收到UploadNotAllowed错误

时间:2017-09-19 08:43:24

标签: python flask-wtforms flask-uploads

我是python和编程的新手。

即使我将表单字段验证程序设置为UploadNotAllowed,我仍然会收到Optional()错误。我的目标是允许用户选择上传或不上传个人资料照片。如果选择上传图像,则所有配置都能正常工作。 任何帮助将不胜感激。

以下是表单字段:

class SettingsForm(FlaskForm):
        profile_pic = FileField('Profile Picture', validators= [Optional(), FileAllowed(images, 'Only images are allowed here')])

这是我的views.py:

if form.validate_on_submit():
    filename = images.save(request.files['profile_pic'])
    current_user.profile_pic = images.url(filename)

1 个答案:

答案 0 :(得分:0)

这是文档(here)的略微编辑版本。这也提供了一些关于你的html文件应该包含什么的提醒。

from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileRequired
from werkzeug.utils import secure_filename

class PhotoForm(FlaskForm):
    photo = FileField(validators=[Optional(), FileAllowed(images, 'Only images are allowed here')])

@app.route('/upload', methods=['GET', 'POST'])
def upload():
    if form.validate_on_submit():
        f = form.photo.data
        filename = secure_filename(f.filename)
        #you can replace this with wherever you want to save your images            
        f.save(os.path.join(
                app.instance_path, 'photos', filename
            ))
        current_user.profile_pic = images.url(filename)
        return redirect(url_for('index'))

    return render_template('upload.html', form=form)