私は、個人のブログにテーブルを作成し、特定のデータにすばやくアクセスできるテーブル機能を追加するにはどうすればよいかかなり心配していました。テーブル内のデータが大きすぎる場合は、ページネーションを追加することが非常に必要でした。また、テーブルにデータをできるだけ効率的にロードすると、ブログ アプリケーションでの作業エクスペリエンスが向上します。

Flask でテーブルを作成するのは非常に簡単です。必要なのは、テーブル構造を定義し、テーブル内のすべてのユーザーを表示することだけです。

基本テーブルは、ブートストラップ テーブルと同様に、データベース内のすべてのデータを表示するテーブルです。短いデータを表示する目的には非常に適しているという意味で、私はこれを基本と呼んでいます。ただし、大きなデータを表示するのはあまり効率的ではありません。
基本テーブルの最大の欠点は、データベース内のすべてのユーザー データを単に表示するだけですが、ページ読み込みの数秒間、このテーブルではページネーションが開始される前にテーブル全体が表示されてしまうことです。サイズが大きい場合、実際の最終テーブルが表示されるまで、ルートが「動作する」までユーザーは辛抱強く待つ必要があります。


Ajax を使用すると、基本的なテーブルが直面する問題の解決に役立ちます。ここで、ajax テーブルへのアクセス要求が行われると、テーブルは最初に空でロードされます。 2 番目のエンドポイントは、テーブル内のデータを表示するために使用されます。ただし、このテーブルにはまだ少し問題があります。データが大きすぎる場合、実際のデータが表示されるまでの数秒間、テーブルは空になります。これは、最初にテーブル全体をロードする必要があり、データのサイズによっては時間がかかる場合があるためです。


サーバー側テーブルでは、ページング、検索、並べ替えなどのすべての機能がサーバー側で実装されます。これは、大きなデータを表示する場合に非常に効率的な方法です。ページ分割されたサーバー側テーブルに対するリクエストが行われると、特定のページで見つかったデータのみが表示されます。ユーザーが別のページに移動すると、次のページのデータに対する新しいリクエストが行われます。したがって、必要なデータのみがロードされて表示されます。これはより良いソリューションですが、実装が少し複雑になります。検索や並べ替えなどの機能をクライアント側からサーバー側に移動する必要があります。

注: Heroku サーバーでアプリケーションをテストすると、「予期しないエラー」が発生する可能性があります。これは、Heraku が提供するデータベース ストレージの量が限られているためです。現在、アプリケーションでは数百人のユーザーが自動生成されており、ユーザーがアプリケーションにアクセスするまでに、無料利用枠バージョンのストレージ制限を超過するために 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 の操作方法を示したこのプロジェクトの更新バージョンをチェックしてください。