将数据传递给 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 中修复。