2017-04-09 10 views
1

私はPython /フラスコには比較的新しいですし、データベースの一部に問題があります。Python:Flask App上のテーブルにMySQLクエリのデータを表示する方法

私は別の機能でMySQLデータベースに接続し、wtformsを使用してdbに挿入されたユーザーからフォーム入力を取得できました。今私はDBに格納されているデータを、「ダッシュボード」ページに、jinjaテンプレートを使用して表形式で表示したいとします。誰かが新しいフォームを提出するたびに、テーブルを展開してそのデータを追加します。

しかし、以下の2番目のコードスニペットで何か間違っていると私を信じさせる既存のデータでさえ、何も表示されないようです。私はpythonファイルを実行するとエラーが出ないので、おそらく私は間違ったHTMLテンプレートをやっているのですか?

データベース接続(dbconnect.py):

import MySQLdb 

def connection(): 
    # Edited out actual values 
    conn = MySQLdb.connect(host="", 
          user="", 
          passwd="", 
          db = "") 
    c = conn.cursor() 

    return c, conn 

メインPythonコード(しようとした場合必要であることを除い/知らない):

from dbconnect import connection 
from flask import Flask, render_template 

@app.route('/dashboard/')  
def display_deals(): 

    try: 
     c, conn = connection() 

     query = "SELECT * from submissions" 
     c.execute(query) 

     data = c.fetchall() 

     conn.close() 

     return data 

     return render_template("dashboard.html", data=data) 

    except Exception as e: 
     return (str(e)) 

HTML:

<table border="1" cellpadding="5" cellspacing="5"> 
    {% for row in data %} 
     <tr> 
     {% for d in row %} 
      <td>{{ d }}</td> 
     {% endfor %} 
     </tr> 
    {% endfor %} 
</table> 

答えて

0

レンダリングされたテンプレートファイルを返す前に、returnステートメントがあります。

+0

返信文は実際問題を引き起こしていました。また、より大きな問題は、@ app.route( '/ dashboard /') 'を使用していた前の関数があったために関数が全く実行されていなかったということです。解決策は、2つの機能を組み合わせることでした。 – wjh18

関連する問題