【问题标题】:Errors with Flask-WTF, FlaskFlask-WTF 的错误,Flask
【发布时间】:2019-07-18 16:48:28
【问题描述】:

在过去一周左右的时间里,我一直在创建一个 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 %}

下载.html:

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

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

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

【问题讨论】:

  • 你能把你得到的错误包括进来吗?

标签: python forms flask flask-wtforms flask-bootstrap


【解决方案1】:

查看本教程:https://www.tutorialspoint.com/flask/flask_file_uploading.htm

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

【讨论】:

    猜你喜欢
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2013-09-19
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多