Да, раньше не обращал на это внимания. Сейчас будет :). Спасибо за ответ.

у, чтобы отобразить таблицу - которая представляет собой фрейм данных Pandas - какТаблица данных, В приведенном ниже упрощенном примере я прочитал два числа, предоставленных пользователем, которые определяют номер строки и столбца таблицы. Количество элементов в этой таблице отображается правильно, однако таблица не отображается.

Проблема, я думаю, в том, что я неправильно прохожу стол. Когда я пытаюсь

return jsonify(number_elements=a * b,
                   my_table=df)

Я получаю ошибку

anaconda2 / lib / python2.7 / json / encoder.py ", строка 184, по умолчанию повышает TypeError (repr (o) +" не является JSON-сериализуемым ")

Ошибка типа: 0 1 2 3 0 51 35 10 84 1 30 60 79 24 не поддерживает сериализацию в формате JSON

если я использую

return jsonify(number_elements=a * b,
                   my_table=df.to_json())

тогда нет ошибки, но таблица все еще не отображается.

Как бы я сделал это правильно?

мойindex.html файл выглядит так:

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"
          rel="stylesheet">
     <link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css"
           rel="stylesheet">
  <script type=text/javascript>
    $(function() {
      $('a#calculate').bind('click', function() {
        $.getJSON('/_get_table', {
          a: $('input[name="a"]').val(),
          b: $('input[name="b"]').val()
        }, function(data) {
          $("#elements").text(data.number_elements);
          $("#a_nice_table").DataTable(data.my_table);
        });
        return false;
      });
    });
  </script>
  </head>
  <body>
    <div class="container">
      <div class="header">
        <h3 class="text-muted">Create a pretty table</h3>
      </div>

      <div>
        <p>Number of rows</p>
        <input type="text" size="5" name="a" value="2">
        <p>Number of columns</p>
        <input type="text" size="5" name="b" value="4">

        <p><a href="javascript:void();" id="calculate">get a pretty table</a></p>
         <p>Result</p>
        <p>Number of elements:</p>
          <span id="elements">Hallo</span><br>
          <span id="a_nice_table">Here should be a table</span>
      </div>
    </div>
  </body>
</html>

И мой файлapp.py выглядит так:

from flask import Flask, render_template, request, jsonify
import pandas as pd
import numpy as np

# Initialize the Flask application
app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/_get_table')
def get_table():
    a = request.args.get('a', type=int)
    b = request.args.get('b', type=int)

    df = pd.DataFrame(np.random.randint(0, 100, size=(a, b)))

    return jsonify(number_elements=a * b,
                   my_table=df)


if __name__ == '__main__':
    app.run(debug=True)

Ответы на вопрос(2)

Ваш ответ на вопрос