Python/Flask/WTForm/Jinja:将变量值传递到wftform字段中;更新页面";

Python/Flask/WTForm/Jinja:将变量值传递到wftform字段中;更新页面";,python,flask,wtforms,Python,Flask,Wtforms,我将FlightNo、Terminal和Status保存到MongoDB中。我想创建一个更新页面,以便更新值。如何在WTForm字段中传递数据库中的现有值 app.py: # Document just for your info! Document = { "_id" : ObjectId("5bfffb603129d742ac94b990"), "flightno" : "LH-100", "terminal" : "A1", "status" : "Inbound" } @app.rou

我将
FlightNo
Terminal
Status
保存到MongoDB中。我想创建一个更新页面,以便更新值。如何在WTForm字段中传递数据库中的现有值

app.py

# Document just for your info!
Document = { "_id" : ObjectId("5bfffb603129d742ac94b990"), "flightno" : "LH-100", "terminal" : "A1", "status" : "Inbound" }

@app.route("/update/<id>"):
def update(id):
     currFlight = db.find_one({"flightno": id})
     form = FlightForm()

     if request.method == "POST":
        f = session["flightno"] = form.flightno.data
        t = session["terminal"] = form.terminal.data
        s = session["status"] = form.status.data

        query = {"flightno": f}
        update = {"$set": {"flightno": f, "terminal": t, "status": s}}
        db.update(query, update)

        return redirect(url_for("index"))
     return render_template("update.html", currFlight=currFlight)
如何将
currFlight
中的值传递到表单中,以便字段中已经填充了
currFlight
中的值?
我尝试了
value=”“
,尽管它只在
StringField
中起作用
终端
状态
选择字段
,因此它不起作用。

当表单方法为“POST”时,您从表单字段读取值并将其保存在数据库中。类似地,当form方法为GET时,您可以从数据库中读取值并将其传递给表单。见下面的代码-

#after your if block
elif request.method == "GET":
    form.flightno.data = currFlight.flightno
    form.terminal.data = currFlight.terminal
    form.status.data = currFlight.status
当页面第一次加载时,将获取方法,表单字段将具有来自数据库的值。确保将表单传递到html模板,如下所示-

return render_template("update.html", currFlight=currFlight, form=form)
return render_template("update.html", currFlight=currFlight, form=form)