5

私はページ (/games/compare/ にあります) を持っており、これはミニ画像比較ゲームです。ユーザーには 2 つの画像が表示され、質問に応じてどちらかを選択するよう求められます。このページは、データベースから画像を取得し、javascript と css を含むテンプレートをレンダリングし、AJAX を使用してデータベースと通信できます。

コードを複製せずに、この投票ゲームをメイン ページに埋め込みたい場合はどうすればよいでしょうか。理想的には、ゲームを更新すると、ゲームを「特集」するすべてのページにも変更が反映されます。

サイト全体のアセットを首尾一貫して組織化された方法で管理する方法に頭を悩ませています。一部のページには css、javascript があり、ブートストラップや GIS フレームワークなどのフレームワークも使用しています。

ゲームを設計図として設定しますか? 重複しないようにアセット (Javascript と CSS) を整理するにはどうすればよいですか?

現在、別のテンプレート (base.html) を拡張するテンプレート (main.html) をレンダリングするページがあります。Base.html には、header.html、nav.html、footer.html が含まれ、body などにブロックが設定されています。

私の現在のアプローチは、最下位レベルですべてを取り除き、最上位共通レベルで再構築することです。これにより、コーディングが非常に遅くなります。たとえば、私はその投票ゲームを持っており、現在は Voting_game.html というページにあり、ゲームをプレイするために必要なものがすべて含まれています (フルページの html、スタイル、javascript が含まれています)。そのゲームを別のページ (ルート インデックスなど) に含めたい場合、私が知っている唯一の解決策は、voting_game.html からスタイル、js、およびページ全体の html を取り除き、ゲームの実行に必要な html だけを残すことです。 . ここでインデックスを作成するときは、voting_game.html から html をインポートしますが、スタイルと JavaScript を個別にインポートする必要があります。これは、すべてのページを 2 回作成する必要があることを意味します。これは、2 倍の作業を行う必要があります。

これを行い、組織化を維持する方法が必要ですが、これを行うための最良の方法を理解するためにあなたの助けが必要です.

ありがとう、

フィル

編集: 埋め込まれたページは、その親ページ (埋め込まれているページ)、または同じ親内の他の埋め込みページ (親の子は話すことができるはずです) とも通信できる必要があります。埋め込まれたゲーム、彼らはポイントを獲得し、ユーザーの現在のポイントを反映して更新される他のページの別の部分に表示されるはずです。

この「スコア ボード」は、埋め込むことができる個別のウィジェット/ページ/ブループリントでもあり、機能するために特定のデータを探します。

4

1 に答える 1

1

HTML のチャンクを再利用するには、Jinja の{% include %}タグを使用できます。それが制限しすぎる場合は、Jinja マクロも適しています。マクロを別のファイルで定義し、{% import "path/to/macros.html" as my_macros %}.

Flask-Assets は、アセットの編成に役立ちます。

ブループリントの使用に関しては、はい、使用する必要があります。しかし、それらは主に Python コードに適用され、HTML テンプレートは別の領域で編成されているため、ここでの使用は関係ないかもしれません。

ただし、常にすべての重複を削除できるわけではありません。ゲームが、サーバー生成の HTML の 3 つの離れた場所に影響を与える必要がある場合、それは、ゲームを含むすべてのテンプレートにコピーするテンプレート コードのビットです。

于 2012-06-07T05:30:59.997 に答える