2016-09-07 16 views
3

私は温室を管理するための小さなWebアプリケーションを作ろうとしていますが、データベースを更新することはできません。データベースボトルsqliteの更新

GETとの方法で試しましたが、何も起こりませんでした。

私はエラーコードなど何もないので、どこに問題があるか分かりません。

あなたは、私が番号を入力し、ここでデータベースに

を更新しようとする静的ページは私のPythonアプリケーションで見ることができます以下

@route('/mtemp', method=['GET', 'POST']) 
def temp_modification(): 


     if request.GET.get('save'): 
       new_temp = request.GET.get('ntemp') 
       new_temp = int(new_temp) 
       conn = sqlite3.connect('database.db') 
       c = conn.cursor() 
       c.execute("UPDATE database SET temp = ?", (new_temp)) 
       conn.commit() 

       redirect("/") 
     else: 
       conn = sqlite3.connect('database.db') 
       c = conn.cursor() 
       c.execute("SELECT temp FROM database") 
       cur_data = c.fetchone() 
       cur_data = str(cur_data) 
       for char in b: 
        cur_data = cur_data.replace(char, "") 


return template('modtemp', old=cur_data) 


run(host = '0.0.0.0', port=8080, debug=True, reloader=True) 

と私のテンプレート:

<p>Nouvelle Température : </p> 
<form action="/" method="GET"> 
<input type="number" name="ntemp" value="{{old}}" > 
<input type="submit" name"save" value="save"> 
</form> 
+1

あなたの 'temp_modification'関数の字下げが奇妙なようです。それを確認できますか? – gabra

+0

あなたのテーブルは 'database'と呼ばれていますか? – Soviut

+0

インデントが良いです、アップロードの問題を修正する必要がありますし、私のテーブルはデータベース – Noobs101

答えて

0

フォームが提出されたときにコードが実際にヒットしているかどうか知っていますか?テンプレート内のフォームアクションはフォームを "/"に送信するように設定されていますが、ボトルコードは "/ mtemp"に設定されているように見えます。私はこのコードがそのまま動作するとは思わないでしょう。フォームアクションを "/ mtemp"に変更する必要があります。

+0

と呼ばれますフォームはまた、GET要求をするように設定されています –