Python 提交文件字段后,文件始终为空

Python 提交文件字段后,文件始终为空,python,flask,flask-wtforms,filefield,Python,Flask,Flask Wtforms,Filefield,我有一个表单,我需要收集一些文本数据和一个文件。提交后,文本字段很好,但文件字段似乎是空的 validator FileRequired声明该字段为空,如果我删除它,它实际上是非类型的 表格类别: 从wtforms导入表单、StringField、validators、SubmitField、DateField 从wtforms.fields.html5导入日期字段 从flask_wtf.file导入文件字段,需要文件,允许文件 来自flask_wtf进口FlaskForm 从烧瓶进口闪蒸 导入

我有一个表单,我需要收集一些文本数据和一个文件。提交后,文本字段很好,但文件字段似乎是空的

validator FileRequired声明该字段为空,如果我删除它,它实际上是非类型的

表格类别:

从wtforms导入表单、StringField、validators、SubmitField、DateField
从wtforms.fields.html5导入日期字段
从flask_wtf.file导入文件字段,需要文件,允许文件
来自flask_wtf进口FlaskForm
从烧瓶进口闪蒸
导入baseDatos
等级AnadirForm(瓶形):
id=StringField('id')
nombre=StringField('nombre',[validators.InputRequired()
volumen=StringField('volumen',[validators.InputRequired()]))
fecha=DateField('fecha',[validators.InputRequired()]))
file=FileField('incroduct Gcode',validators=[FileRequired()])
submit=SubmitField('Post'))
渲染类:

@app.route(“/”,方法=['GET','POST'])
def main():
primeraForm=AnadirForm(request.form)
如果(primeraForm.validate_on_submit()):
打印(primeraForm.file.data)
HTML:


{{form.hidden_tag()}}
{{form.id(class=“form control”,placeholder=“id”)}
{{form.hidden_tag()}}
{{form.nombre(class=“form control”,placeholder=“nombre”)}
{{form.hidden_tag()}}
{{form.volumen(class=“form control”,placeholder=“volumen”)}
{{form.hidden_tag()}}
{{form.fecha(class=“form control”,placeholder=“fecha”)}
{{form.hidden_tag()}}
{{form.file(placeholder=“file”)}
{{form.submit(class=“btn btn primary”)}
我无法访问文件数据(稍后我必须存储这些数据,但在我成功获取文件后)

请尝试:

form=AnadirForm(request.POST或None,request.FILES或None)
或:

if request.method==“POST”:
file=request.files['file\u name']
试试:

form=AnadirForm(request.POST或None,request.FILES或None)
或:

if request.method==“POST”:
file=request.files['file\u name']

我也有同样的问题。对我有效的方法是将
FileField()
替换为
multiplefield()
,然后调整数据处理,因为您得到的是一个文件列表,而不仅仅是一个文件


我不知道这个错误是从哪里来的,这对我来说似乎很奇怪,因为FileField在另一个案例中为我工作,尽管没有真正的区别。

我也有同样的问题。对我有效的方法是将
FileField()
替换为
multiplefield()
,然后调整数据处理,因为您得到的是一个文件列表,而不仅仅是一个文件

我不知道这个错误是从哪里来的,这对我来说似乎很奇怪,因为FileField在另一个案例中为我工作,尽管没有真正的区别。

请尝试一下以下代码:

<form method="POST" action="" enctype="multipart/form-data">
    {{form.hidden_tag()}}
    <fieldset class="form-group">
        <div class="hueco col-xs-7">
            
            {{form.id(class="form-control",placeholder="Id")}}
        </div>
        <div class="hueco col-xs-7">
            {{form.nombre(class="form-control",placeholder="Nombre")}}
        </div>

        <div class="hueco col-xs-7">
            {{form.volumen(class="form-control",placeholder="Volumen")}}
        </div>
        <div class="hueco col-xs-7">
            {{form.fecha(class="form-control",placeholder="Fecha")}}
        </div>
        <div>
            {{form.file(placeholder="File")}}
        </div>
    </fieldset>
    <div class="form-group">
    {{ form.submit(class="btn btn-primary") }}
    </div>
</form>

{{form.hidden_tag()}}
{{form.id(class=“form control”,placeholder=“id”)}
{{form.nombre(class=“form control”,placeholder=“nombre”)}
{{form.volumen(class=“form control”,placeholder=“volumen”)}
{{form.fecha(class=“form control”,placeholder=“fecha”)}
{{form.file(placeholder=“file”)}
{{form.submit(class=“btn btn primary”)}
请尝试此代码一次:

<form method="POST" action="" enctype="multipart/form-data">
    {{form.hidden_tag()}}
    <fieldset class="form-group">
        <div class="hueco col-xs-7">
            
            {{form.id(class="form-control",placeholder="Id")}}
        </div>
        <div class="hueco col-xs-7">
            {{form.nombre(class="form-control",placeholder="Nombre")}}
        </div>

        <div class="hueco col-xs-7">
            {{form.volumen(class="form-control",placeholder="Volumen")}}
        </div>
        <div class="hueco col-xs-7">
            {{form.fecha(class="form-control",placeholder="Fecha")}}
        </div>
        <div>
            {{form.file(placeholder="File")}}
        </div>
    </fieldset>
    <div class="form-group">
    {{ form.submit(class="btn btn-primary") }}
    </div>
</form>

{{form.hidden_tag()}}
{{form.id(class=“form control”,placeholder=“id”)}
{{form.nombre(class=“form control”,placeholder=“nombre”)}
{{form.volumen(class=“form control”,placeholder=“volumen”)}
{{form.fecha(class=“form control”,placeholder=“fecha”)}
{{form.file(placeholder=“file”)}
{{form.submit(class=“btn btn primary”)}