Flask:用于更新数据库中值的按钮

时间:2017-02-11 14:15:33

标签: python html flask

所以我当前从数据库中提取一个值并将其显示在屏幕上。我旁边有一个HTML按钮,每次点击它都会使屏幕上的分数增加1。目前,当我点击按钮时没有任何反应。屏幕上的数字保持不变。

Python文件

@app.route('/')
def layout():
    db = get_db()
    try:
        cur1 = db.execute('SELECT score FROM {tn} where name="Tyler"'.format(tn="Score"))
        score1 = cur1.fetchone()
        if request.method == 'POST':
            db.execute('UPDATE {tn} SET score=score+1 WHERE name="Tyler"'.format(tn="Score"))
            db.commit()
    except:
        flash("This person doesn't exist in our database!")
    return render_template('layout.html', score1=score1)

HTML文件

  <form action="{{ url_for('layout') }}" method="post">
    <p align="center">Tyler</p>
    <div align="center">
      <tr>
        <td>{{ score1.score }}</td>
      </tr> &nbsp; &nbsp;
      <button type="button">+1</button>
    </div>
  </form>

感谢任何帮助。谢谢。

编辑:更新后的视图和HTML。同样的问题。

1 个答案:

答案 0 :(得分:0)

您的两个视图函数映射到同一路径;但URL只能由一个视图提供。

将increaseScore1函数映射到不同的路径,或者将逻辑组合在一个函数中,该函数检查方法是否为POST,如果是,则更新分数,否则只显示它。