2017-02-11 53 views
0

因此我当前从数据库中提取一个值并将其显示在屏幕上。我在它旁边有一个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。同样的问题。

+0

那么,会发生什么? (为什么插入表名,特别是当它硬编码?) –

+0

每当我点击按钮的数字不会改变。它只停留在零(表格中的默认值)。一旦我拥有基本的功能,我打算花费大量的硬编码,这就是为什么你看到一些插值。 – HereComesDatBoi

回答

0

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

要么将​​increaseScore1函数映射到不同的路由,要么将逻辑组合在一个函数中,该函数检查方法是POST还是更新分数,否则只显示它。

+0

这很有道理,并感谢您的回答。我更新了我的代码并尝试了它,但遇到了同样的问题。 – HereComesDatBoi