Меня очень беспокоило, как я могу создать таблицу в своем личном блоге и добавить к ней функциональные возможности, которые позволят мне быстро получить доступ к любым конкретным данным. В случае, когда данные в таблицах слишком велики, добавление нумерации страниц было крайне необходимо. Кроме того, максимально эффективная загрузка данных в таблицу поможет улучшить работу с моим блог-приложением.
Создать таблицу в flask очень просто. Все, что вам нужно сделать, это определить структуру таблицы и отобразить всех пользователей в таблице.
Базовая таблица — это таблица, которая отображает все данные в базе данных, как и таблица начальной загрузки. Я называю его базовым в том смысле, что он вполне хорош для целей отображения коротких данных. Однако отображение больших данных не очень эффективно.
Самый большой недостаток базовой таблицы, которая просто показывает все пользовательские данные в нашей базе данных, заключается в том, что в течение нескольких секунд при загрузке страницы эта таблица будет отображать всю таблицу, прежде чем начнется разбиение на страницы. В больших размерах пользователю придется терпеливо ждать, пока маршрут «сделает свое дело», прежде чем отобразится фактическая итоговая таблица.
Использование Ajax помогает решить проблему, с которой сталкивается базовая таблица. Здесь таблица сначала загружается пустой при выполнении запроса на доступ к таблице ajax. Вторая конечная точка используется для отображения данных в таблице. Однако с этой таблицей все еще есть небольшая проблема. Если данные слишком велики, таблица будет пустой в течение нескольких секунд, прежде чем отобразятся фактические данные. Это связано с тем, что сначала необходимо загрузить всю таблицу, а это может занять время в зависимости от размера данных.
В таблице на стороне сервера все функции, такие как разбиение на страницы, поиск и сортировка, реализуются на стороне сервера. Это очень эффективный способ отображения больших данных. При выполнении запроса серверной таблицы с разбивкой на страницы будут отображаться только данные, найденные на конкретной странице. Если пользователь переходит на другую страницу, то будет сделан новый запрос данных на следующей странице. Таким образом, загружаются и отображаются только необходимые данные. Это лучшее решение, но его реализация немного сложнее. Такие функции, как поиск и сортировка, необходимо перенести с клиентской стороны на серверную.
ПРИМЕЧАНИЕ. Если вы тестируете приложение на сервере Heroku, вы можете обнаружить «Неожиданную ошибку». Это связано с тем, что Heroku предоставляет ограниченный объем хранилища базы данных. В настоящее время приложение автоматически генерирует сотни пользователей, которые к моменту доступа к приложению Heroku могли отключить свою базу данных из-за превышения лимита хранилища в версии бесплатного уровня.
Если вы заинтересованы в тестировании приложения, вы можете использовать следующие команды для запуска приложения:
Клонируйте этот репозиторий:
$ git clone [email protected]:GitauHarrison/beautiful-flask-tables.git
Измените каталог для доступа к приложению:
$ cd beautiful-flask-tables
Создайте и активируйте виртуальную среду:
$ mkvirtualenv flask-tables
Установите зависимости:
$ pip3 install -r requirements.txt
Запустите приложение:
$ flask run
Откройте приложение в браузере, работающее на локальном порту 5000:
Использование JQuery в настоящее время устарело. Это делает DataTables.js устаревшим, поскольку он опирается на JQuery. Ознакомьтесь с обновленной версией этого проекта здесь, где я показываю, как работать с Grid.js.