Flask-WTF错误,Flask

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask-WTF错误,Flask相关的知识,希望对你有一定的参考价值。

过去一周左右,我一直在创建Flask应用程序,但似乎没有任何效果。目标是基于一组要以表单形式提交的参数来创建Pandas数据框。

至少在主页上,在前端,一切似乎都正常。但是,似乎每当我尝试1)实际基于参数创建数据帧时就出现错误(这意味着要用my_function和2来完成),每当我尝试转到以下内容的/ downloads部分时网页。

我拥有的所有代码都包含在下面,包括两个模板。 /downloads页面的主要目的只是打印一条消息,指出理想情况下在主页"/"中创建的函数在创建新的DataFrame中发挥了作用。

我已经尝试了很多事情,包括对if request.methods=='POST"使用更基本的方法,但是似乎没有任何效果。任何帮助将不胜感激。谢谢!

from flask import Flask, render_template, Response, request, redirect, url_for
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import FileField, StringField, IntegerField, SubmitField
from wtforms.validators import DataRequired
from my_script import my_function

app = Flask(__name__)
bootstrap = Bootstrap(app)

### setting configuration for WTF extension
app.config['SECRET_KEY'] = 'my secret key'

class FileUploadForm(FlaskForm):
    file_uploaded = FileField('Upload a file here:', validators=[DataRequired()])
    int_param = IntegerField('Enter number:', default=12, validators=[DataRequired()])
    param1 = StringField('Enter param1:', validators=[DataRequired()])
    param2 = StringField('Enter param2:', validators)
    submit = SubmitField('Download File')

### main page: contains the fields we need
@app.route('/', methods=['GET', 'POST'])
def index():
    form = FileUploadForm()

    if form.validate_on_submit():
        my_function(form.file_uploaded.data, form.int_param.data, form.param1.data,
                       form.param2.data)
        return render_template('download.html')

    return render_template('index_sys.html', form=form)

@app.route('/downloads', methods=['GET', 'POST'])
def downloads():
    return render_template('download.html')

index_sys.html:

{% extends "base_sys.html" %}
{% import "bootstrap/wtf.html" as wtf %}

{% block title %}Title{% endblock %}

{% block page_content %}
Fill out the fields below.
<br><br>
{{ wtf.quick_form(form, action='/downloads') }}

{% endblock %}

download.html:

{% extends "base_sys.html" %}
{% import "bootstrap/wtf.html" as wtf %}

{% block title %}Title{% endblock %}

{% block page_content %}
<h2>File downloaded successfully</h2>
{% endblock %}
答案

请参见本教程:https://www.tutorialspoint.com/flask/flask_file_uploading.htm

确保已设置enctype = "multipart/form-data"

以上是关于Flask-WTF错误,Flask的主要内容,如果未能解决你的问题,请参考以下文章

flask使用Flask-WTF处理表单

如何使用 Ajax 提交 Flask-WTF 表单

用装饰器封装Flask-WTF表单验证逻辑

flask入门到起飞(五) flask-wtf使用

scrf 原理及flask-wtf防护

Flask 插件学习:Flask-WTF 和 WTForms 扩展