使用psycopg2用数据库中的数据填充烧瓶中的形式(wtforms)

时间:2019-05-08 19:40:44

标签: python postgresql flask psycopg2 flask-wtforms

我有一个小表格,我想用查询结果填充该表格,以便以后可以对其进行编辑。我正在使用Flask,WTForms和psycopg2(没有SQLAlchemy)。

查看功能:

@app.route('/editpositions/<row>', methods=['GET', 'POST'])
def editpositions_row(row):

    conn = connect(host="localhost", user="postgres", dbname="portfoliotool", password="")
    form = EditPositions()

    if request.method == 'GET':
        with conn.cursor() as cur:
            sql = "SELECT isin, aantal FROM posities WHERE posnr = %(row)s"
            cur.execute(sql, {"row": row})
            data_pos = cur.fetchall()
            form.isin.data = data_pos[0][0]
            form.aantal.data = data_pos[0][1]
            return render_template('editpositions.html', form=form)

html模板:

{% block app_content %}
<<div class="container">
  <div class="row justify-content-center">
    <div class="col">
      <h1>Pas posities aan</h1>
          <form action="" method="post" novalidate>
          {{ form.hidden_tag() }}
          <p>
            {{ form.isin.label }}<br>
            {{ form.isin(size=32) }}
          </p>
          <p>
            {{ form.aantal.label }}<br>
            {{ form.aantal(size=32) }}
           <p>{{ form.submit() }}</p>
          </form>
      </div>
  </div>
</div>
{% endblock %}

页面和表单呈现良好,但是未填充两个字段。我在控制台中测试了sql查询,它返回了所需的结果,所以我想我缺少了一些东西。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

最终我找到了问题。这里提到的代码是正确的。问题是“行”由于其他地方的错误而没有获得正确的值。

@app.route('/editpositions/<row>', methods=['GET', 'POST'])