2017-02-11 7 views
0

現在、データベースから値を取り出して画面に表示しています。私はそれをクリックするたびに画面上のスコアを1ずつ増やすはずのHTMLボタンがすぐ横にあります。現在、ボタンをクリックすると何も起こりません。画面上の数字はそのままです。Flask:データベースの値を更新するボタン

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。同じ問題。

+0

だからどうしますか? (そして、どうしてあなたはテーブル名を補間していますか?とにかくハードコーディングされているときは特にです) –

+0

ボタンをクリックすると、数値は変わりません。ちょうどゼロのままです(表のデフォルト)。私は一度基本的な機能を持っていれば、たくさんのハードコーディングを取ることを計画しています。そのため、補間のいくつかのスプリンクルが表示されます。 – HereComesDatBoi

答えて

0

2つのビュー機能は同じルートにマップされています。 URLは1つのビューでのみ配信できます。

increaseScore1関数を別のルートにマップするか、メソッドがPOSTかどうかをチェックし、そうであればスコアを更新する1つの関数でロジックを結合します。

+0

これはかなり意味があり、あなたの答えに感謝します。コードを更新して試しましたが、同じ問題がありました。 – HereComesDatBoi

関連する問題