2016-10-23 9 views
0

この係数は、データベースに現在あるすべてのレコードを表示しますが、表示しません。ページがリロードされると、データベースに追加された最新の行は表示されません。私のFlaskアプリケーションで、私の.fetchall()が更新されていませんか?

mod = Blueprint('home', __name__) 
conn = engine.connect() 

def grabData(): 
    query = text(
     "SELECT * FROM " 
      "users " 
     "ORDER BY id DESC " 
    ) 
    rows = conn.execute(query).fetchall() 
    return rows 

@mod.route('/') 
def home(): 
    return render_template('index.html', result=grabData()) 

のMySQL Workbenchを新しい行があることを示しています。フラスコのアプリケーションを再起動すると、新しい行が表示されます。

私もhome()内のクエリを入れて試してみたが、それはどちらか動作しませんでした。私が間違っていることは何ですか?

+0

あなたはそれがうまくいかないと思いますか?データベース内のデータが変更されない場合、*「新しいデータセット」*は常に同じになります。 – zvone

+0

データベースにレコードを追加するコードがあります。ページを更新すると、最新の行セットが得られません。 – TheWorstOne

+0

しかし、レコードをデータベースに追加するコードが機能しないのでしょうか?変更をコミットしますか? – zvone

答えて

0

は、私が最初にオフコメントのみんなに感謝したい、私は答えを見つけたと私は、ユーザー@davidismがそれを投稿しただろうが、私は私がすると思います期待していたが、これは彼に完全なクレジットです。

だから、彼のコメントだったと私は、「グローバル接続を開く要求ごとにそれを開けないでください」、引用します。では私は何をしましたか?私はそれぞれのリクエストごとにdb接続を開いただけで、実際に私の問題を解決しました。

元の投稿のコードの代わりに、これが機能するようにしたのです。

mod = Blueprint('home', __name__) 

def grabData(): 
    conn = engine.connect() 
    query = text(
     "SELECT * FROM " 
      "users " 
     "ORDER BY id DESC " 
    ) 
    rows = conn.execute(query).fetchall() 
    conn.close() 
    return rows 

@mod.route('/') 
def home(): 
    return render_template('index.html', result=grabData()) 
関連する問題