Flask-WTF のファイルアップロード
メモ。というかドハマりした。
Flask-WTF を使ってファイルをアップロードする際、こうやって書いたらファイルのみ受け取れなかって ??? となった。
from flask_wtf.file import FileField class PhotoForm(Form): photo = FileField('Your photo') @app.route('/upload/', methods=('GET', 'POST')) def upload(): form = PhotoForm(request.form) if form.validate_on_submit(): filename = secure_filename(form.photo.data.filename) form.photo.data.save('uploads/' + filename) else: filename = None return render_template('upload.html', form=form, filename=filename)
問題は
form = PhotoForm(request.form)
ここで、正しくは
form = PhotoForm()
だった orz
通常のフォームは request.form が必要だけど、ファイルアップロードの時は不要。