개인 블로그에 테이블을 어떻게 생성하고, 특정 데이터에 빠르게 접근할 수 있는 테이블 기능을 추가할 수 있을지 고민이 컸습니다. 테이블의 데이터가 너무 큰 경우 페이지 매김 추가가 매우 필요했습니다. 또한 테이블에 데이터를 최대한 효율적으로 로드하면 블로그 애플리케이션 작업 환경을 개선하는 데 도움이 됩니다.
플라스크에서 테이블을 만드는 것은 매우 쉽습니다. 당신이 해야 할 일은 테이블 구조를 정의하고 테이블에 모든 사용자를 표시하는 것뿐입니다.
기본 테이블은 부트스트랩 테이블과 마찬가지로 데이터베이스의 모든 데이터를 표시하는 테이블이다. 짧은 데이터를 표시하는 데 매우 적합하다는 의미에서 기본이라고 부릅니다. 그러나 대용량 데이터를 표시하는 것은 그리 효율적이지 않습니다.
단순히 데이터베이스의 모든 사용자 데이터를 표시하는 기본 테이블의 가장 큰 단점은 페이지 로드 시 몇 초 동안 페이지 매김이 시작되기 전에 이 테이블이 전체 테이블을 표시한다는 것입니다. 대규모의 경우 사용자는 실제 최종 테이블이 표시되기 전에 경로가 '제대로 되는' 동안 인내심을 갖고 기다려야 합니다.
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로 작업하는 방법을 보여주는 이 프로젝트의 업데이트된 버전을 여기에서 확인하세요.