为了账号安全,请及时绑定邮箱和手机立即绑定

在 HTML 模板中同时显示来自不同表单的多个 Flask 变量

在 HTML 模板中同时显示来自不同表单的多个 Flask 变量

函数式编程 2023-10-24 15:14:55
我在名为 requests.html 的 html 模板上有 2 个单独的表单,一个用于输入公司名称,另一个用于输入关键字,如下所示。 <form method="POST">     <p>Enter Company Name:</p>   <p><input type="text" name="company_name"></p>   <p><input type="submit" value="submit"></p> </form>  <p> Name: {{ name }} </p> <form method="POST">      <p>Enter Keywords:</p>    <p><input type="text" name="keywords"></p>    <p><input type="submit" value="submit"></p> </form>   <p> Keywords: {{ keywords }}</p>我希望能够在每个表单下方看到的段落标签中显示表单输入。下面是相关的烧瓶代码:    @app.route('/queries/', methods=['GET', 'POST'])    def queries():    if request.method == 'POST':        if request.form['company_name']:            name = request.form['company_name']            return render_template('queries.html', name=name)        elif request.form['keywords']:            keywords = request.form['keywords']            return render_template('queries.html', keywords=keywords)    return render_template('queries.html')我的问题是,首先,输入的公司名称确实显示良好,其中 {{ name }} 元素应有的样子,但在输入关键字时我收到“错误请求”错误。其次,我之前确实使两个输入都有效,但是当我使用一种表单时,它会擦除另一种表单中显示的数据,例如,在已经输入并显示公司名称后输入关键字时,该关键字将出现在{{关键字 }} 元素,但公司名称会消失。经过一些研究后,我可能需要使用 AJAX 来保持所有元素的显示,但不确定我是否在寻找正确的方向。看来这应该是一个比较简单的问题,请帮忙解决!预先感谢您的任何回复。
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

代替:

request.form['company_name']
request.form['keywords']

用这个 :

request.form.get("company_name")
request.form.get("keywords")

如果表单输入中没有值,Flask 会抛出错误。使用 form.get 烧瓶将尝试获取值,如果没有值则进行处理。


查看完整回答
反对 回复 2023-10-24
  • 1 回答
  • 0 关注
  • 56 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信