Python 烧瓶WTF表格

Python 烧瓶WTF表格,python,forms,flask,Python,Forms,Flask,我有下面的函数,它只是从数据库中选择数据并将其分配给变量 @app.route("/tasks") @login_required def tasks(): g.db = connect_db() data = g.db.execute(""" SELECT name, due_date, priority, task_id FROM tasks where status = 1 """) open_task

我有下面的函数,它只是从数据库中选择数据并将其分配给变量

@app.route("/tasks")
@login_required
def tasks():
    g.db = connect_db()
    data = g.db.execute("""
            SELECT name, due_date, priority, task_id
            FROM tasks where status = 1
        """)
    open_tasks = [dict(name=row[0], due_date=row[1], priority=row[2], task_id=row[3])
                  for row in data.fetchall()]

    data = g.db.execute("""
            SELECT name, due_date, priority, task_id
            FROM tasks where status = 0
        """)
    closed_tasks = [dict(name=row[0], due_date=row[1], priority=row[2], task_id=row[3])
                  for row in data.fetchall()]
    g.db.close()
    return render_template(
        'tasks.html',
        form=AddTaskForm(request.form),
        open_tasks=open_tasks,
        closed_tasks=closed_tasks
    )
但我不能理解的是
form=AddTaskForm(request.form)
task.html
已经是一个表单,您可以在这里看到:

<div class="add_task">
    <h3>Add a new task</h3>
    <form action="{{ url_for('add_task') }}" method="post">
        <p>
            <label>Task Name: </label>
            <input type="text" name="name">
        </p>
        <p>
            <label>Due Date: </label>
            <input type="text" name="due_date">
        </p>
        <p>
            <label>Priority</label>
            <select name="priority">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
            </select>
        </p>
        <p>
            <input type="submit" value="Save">
        </p>
    </form>
</div>

好问题,因为表单及其操作从未在函数/路径/方法中使用。因此,如果您希望在何处使用表单创建任务: 你会:

# Initialization etc.
form = AddTaskForm(request.form)
if form.validate_on_submit():
    # Do whatever with the submited data
return render_template("task.html", form=form, ...)

因此,基本上您可以使用相同的方法呈现结果和接受表单数据

您所说的
#初始化等是什么意思
#对提交的数据执行任何操作
。我应该用什么替换它们?初始化:在示例
open\u tasks
closed\u tasks
form
中为模板设置变量,然后检查表单是否已提交和有效
表单。在提交时验证()
如果表单已提交且有效->您可以访问已发布的
表单.name.data
等。检查文档。
# Initialization etc.
form = AddTaskForm(request.form)
if form.validate_on_submit():
    # Do whatever with the submited data
return render_template("task.html", form=form, ...)