Python/ flask /WTForm/Jinja : Passing variable value into wftform field for "Update Page"

标签 python flask wtforms

我将 FlightNoTerminalStatus 保存到 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)

update.html:

<form method="POST">
   {{form.hidden_tag()}}
   {{form.flightno.label}} {{form.flightno}} <br>
   {{form.terminal.label}} {{form.terminal}} <br>
   {{form.status.label}} {{form.status}} <br>
   {{form.submit()}}
</form>

如何将 currFlight 中的值传递到表单中,以便字段中已经填充了 currFlight 中的值? 我尝试了 value="",尽管它只适用于 StringFieldTerminalStatus 都是SelectFields,所以不起作用。

最佳答案

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

#after your if block
elif request.method == "GET":
    form.flightno.data = currFlight.flightno
    form.terminal.data = currFlight.terminal
    form.status.data = currFlight.status

当页面第一次加载时,方法将为 GET,表单字段将从数据库中获取值。确保将表单传递给 html 模板,如下所示 -

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

关于Python/ flask /WTForm/Jinja : Passing variable value into wftform field for "Update Page",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53542745/

相关文章:

python - 使用 Flask WTF-Forms 手动生成 CSRF token

python - Caffe 和 TensorFlow Protobuf - 维护不同的版本

python - 使用 MoviePy 在视频上叠加图像

python - WTForms SelectField 中的自定义选项基于当前日期

javascript - Flask WTForms 的自定义属性

python - 您如何为 WTForms-Alchemy 指定 unique=True?

python - 无需导入即可使用 Python 脚本

python - 设置分布式 ipython/ipyparallel MPI 集群

python - 使用 Flask-SQLAlchemy 和 Python 进行建模

python-3.x - Pytest Flask应用程序属性错误: module 'src.api' has no attribute 'test_client'