Почему я не могу использовать панд с атрибутом fetchall в Python-Flask - PullRequest
0 голосов
/ 19 марта 2019

Я использую Python 3.5 с Flask, Flaskext Library для соединения с БД Я использовал библиотеку pandas для нормализации данных в базе данных

В этом случае я хочу показать результат нормализации запроса из таблицы в базе данных

Это код в app.py

@app.route('/normalisasi')
def normalisasi():
    connection = mysql.connect()
    df = pd.read_sql_query("SELECT rumah_tangga, niaga_kecil, niaga_besar, sosial_umum, sosial_khusus, pemerintah, tnipolri, industri_kecil, industri_besar, target FROM tb_dataset", connection);
    normalisasi = (df - df.min()) / (df.max() - df.min())*0.8+0.1
    data = pd.fetchall()

    return render_template('normalisasi.html', data = data)

И это часть кода на странице normalisasi.html

<tbody>
     {% for item in data %}
     <tr>
      <td>{{item[0]}}</td>
      <td>{{item[1]}}</td>
      <td>{{item[2]}}</td>
      <td>{{item[3]}}</td>
      <td>{{item[4]}}</td>
      <td>{{item[5]}}</td>
      <td>{{item[6]}}</td>
      <td>{{item[7]}}</td>
      <td>{{item[8]}}</td>
      <td>{{item[9]}}</td>
      <td>{{item[10]}}</td>
    </tr>
    {% endfor %}
</tbody>

Когда я открываю страницу, результат выглядит так

The result in browser

Но в консоли это работает

The result in console

Как это исправить, помогите пожалуйста

1 Ответ

0 голосов
/ 19 марта 2019

Насколько я знаю, fetchall() вовсе не метод панд, а скорее метод на курсоре БД.Скорее всего, вы не выполняете тот же код при запуске в консоли.

Вы также ни для чего не используете переменные df и normalisasi.

Обычно можно сделать что-то вроде:

cursor = connection.cursor()
cursor.execute(query)
rows = cursor.fetchall()
df = pd.DataFrame(rows)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...