Лучший способ получить большой результат запроса для шаблона во Flask - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь выяснить, как передать в шаблон большой запрос, который я преобразовал в строку JSON, составленную из списка списков из более чем 500 000+ записей.Текущий способ, которым я это делаю, работает для небольших объектов:

return render_template('/dataprocessing.html', data=json.dumps(result))

Где data = json.dumps (result) - это способ передачи большой строки JSON в шаблон.Однако размер этой строки, хранящейся в клиенте, значительно замедляет мое приложение.Я также знаю, что есть другой способ передать его через куки, но это хуже, чем этот метод, и не будет работать для больших размеров.

Что мое приложение делает, так это то, что оно выводит большой объем данных избаза данных через запрос SQL.Я хочу визуализировать эти данные в шаблоне, шаг за шагом проходя через эти данные и создавая элементы DOM, представляющие эти строки.

Я искал часы и пытался реализовать решения для этого с небольшим успехом.так что если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен.

Одним из решений, которое я имел в виду, является разбиение данных на части и отправка одного фрагмента за раз из представления в шаблон.Затем я отправлю следующий фрагмент, когда мы перейдем к последнему ряду текущего фрагмента внутри шаблона.И я бы сделал это с помощью вызова AJAX?(Я довольно новичок в веб-разработке).

1 Ответ

0 голосов
/ 15 ноября 2018

Это тонна данных, которые передаются в браузер и могут задушить компьютер любого пользователя.Например, представьте, если бы Google показывал 100 000 результатов вместо 10 или 20 - результаты поиска были бы невероятно медленными.Если вы хотите визуализировать данные, я думаю, вы, вероятно, захотите предварительно агрегировать их перед отправкой шаблона, чтобы он был «готов к графику».Давайте рассмотрим тривиальный пример:

id,name,publisher
1,war and peace,penguin
2,romeo and juliet,harper
3,the trial, penguin

Возможно, вы не захотите передать его в предварительно агрегированный шаблон, например:

[
  {
    "publisher": "penguin",
    "count": 2,
    "items": ["war and peace", "the trial"]
  },
  {
    "publisher": "haper",
    "count": 1,
    "items": ["romeo and juliet"]
  }
]

Таким образом, вы обработаете свои данные до он отправляется в ваш шаблон, и в приведенном выше примере может сделать что-то вроде гистограммы, и при этом вы будете отображать книги, которые у него есть (или, возможно, топ-5 - большая часть данных будеткак-то урезано в веб-представлении, если есть тонна этого).

...