将数据传递给 WTForms 和 Flask-WTF
WTForms 提供了一个 FileField
来呈现文件类型输入。它对上传的数据没有任何特殊之处。但是,由于 Flask 拆分表单数据(request.form
)和文件数据(request.files
),因此你需要确保在创建表单时传递正确的数据。你可以使用 CombinedMultiDict
将两者合并为 WTForms 理解的单一结构。
form = ProfileForm(CombinedMultiDict((request.files, request.form)))
如果你正在使用 Flask-WTF (集成 Flask 和 WTForms 的扩展),将自动为你处理传递正确的数据。
由于 WTForms 中存在错误,每个字段只会有一个文件,即使上传了多个文件也是如此。有关详细信息,请参阅此问题 。它将在 3.0 中修复。