0
我希望能夠使用Flask-WTF FileField在Flask上上傳CSV文件,但無法通過validate_on_submit
。Flask-WTF FileField失敗validate_on_submit
這是我的看法。
@main.route('/upload', methods=['GET', 'POST'])
def upload_products():
form = UploadForm()
print (request.method)
print (form.validate_on_submit())
print (form.csv.data)
if form.validate_on_submit():
print ('valid on submit')
f = form.csv.data
print (f)
return redirect(url_for('upload_products'))
return render_template('upload.html', form=form)
這是我的形式
class UploadForm(FlaskForm):
csv = FileField("")
這是我html
文件。
<div class="container">
<h1 class="my-4">Hello! Upload files here!</h1>
</div>
<div class="container" >
<form action="{{ url_for('main.upload_products') }}" method="post" enctype="multipart/form-data">
{{form.csv}}
<input type="submit" value="Submit">
</form>
</div>
上validate_on_submit
,我總是收到False
值。 我也打印出來form.csv.data
,這是我得到的結果是:
<FileStorage: '12347.csv' ('application/vnd.ms-excel')>
爲什麼沒有按規定validate_on_submit
?我錯過了什麼?
我想這是CSRF的問題。你能打印出「form.errors」嗎?它應該說「CSRF令牌丟失」。如果是這樣,請檢查此答案:https://stackoverflow.com/a/21501593/2644759 –
你是對的,錯誤是'CSRF令牌丟失.' – essramos