使用Flask和WTForms我怎么能有一个表,其中一些列是输入?

问题描述 投票:0回答:1

我很难看到这是如何完成的,文档似乎没有多大帮助。

我需要生成一个表,行大小将是可变的,但不是动态的(我知道在生成页面之前我需要多少行)。

为了简单起见,我们设想一个页面,您可以使用整数对n个考试进行评分。

我试过这个:

表格。

class InputInteger(Form):
    grade = IntegerField('Grade')

风景

@decorator..
def grade():
    form = InputInteger()
    names = student_list

    return render_template("grade.html", form=form, names=names)

模板

<table>
    <tr>
        <th>Name</th>
        <th>Grade</th>
    </tr>
    {% for name in names %}
    <tr>
        <td>
            {{name}}
        </td>
        <td>
            {{form.grade}}
        </td>
    </tr>
</table>

但是我如何读回输入的值?我如何区分属于谁的等级?

相当困惑,我读过有关FieldList(FormField(IntegerField))的信息,但这不只是一个带有整数列表的字段吗? Table Widget怎么样,我需要它吗?

请帮忙。

python flask wtforms
1个回答
1
投票

你几乎是对的。将您的表放在一个html表单中,并捕获一个可以检索输入字段的函数。这里有一个例子:

<form action="/grade">
<table>
<tr>
    <th>Name</th>
    <th>Grade</th>
</tr>
{% for name in names %}
<tr>
    <td>{{name}}</td>
    <td><input id='{{name}}' value='{{form.grade}}' "></td>
</tr>
</table>
</form

而你的烧瓶功能

@app.route('/grade', methods=['GET', 'POST'])
def grade():
    if request.method == 'POST':
      return 'Form posted.'

当您将表单发布到您的函数时,您可以通过这种方式访问​​输入字段request.form['inputfieldname']而不是您执行的操作。我希望我的解释清楚。祝好运!!!

© www.soinside.com 2019 - 2024. All rights reserved.