2

サーバー側でdjangoを使用し、クライアント側で明らかにjavascriptを使用しています。クライアントでプレート テンプレート エンジンを使用したいと考えています。

クライアントにdjangoテンプレートを提供する最良の方法は何ですか? 私たちはそれを行ういくつかの方法を教えました。

  1. 生のテンプレートを提供するビューを作成します。
    • おそらく最良の方法ではない
  2. 必要なテンプレートを静的フォルダーにコピーします。
    • これは、カスタムの静的ファイル ファインダーで実行できます。
    • ブラウザはテンプレートをキャッシュできます
  3. 生のテンプレートを JavaScript 変数に入れる te​​mplate タグを使用してテンプレートを提供します。
    • この方法で受け取ったテンプレートは個別にキャッシュできません

これを簡単にするdjangoアプリはありますか?

クライアントにテンプレートが必要な理由は、サーバーとクライアント側で同じクライアントを使用したいからです。ページが最初にロードされると、完全なテンプレートがサーバー上でレンダリングされます。アプリケーションをナビゲートするときに、必要なデータのみがロードされ、プッシュ状態を使用してページの変更が行われます。

4

1 に答える 1

2

A) 動的に生成されたプレート テンプレート、または B) 動的に作成されたプレート テンプレート (たとえば、管理者経由で DB に入力されるなど) を使用できるようにする必要がある場合は、1 を使用することをお勧めします (悪いことではありません)。 - django はテキスト コンテンツを提供するために作成されているため、動的な方法で提供する必要がある限り、問題はありません)。3 は悪い選択です。これは、ブラウザが静的リソースをキャッシュできないことを意味するためです (各ページに出力される場合)... もちろん、ページごとに異なるプレート テンプレートが必要な場合を除きます。

上記の A または B が必要ない場合は、前述のようにテンプレートを静的ディレクトリに貼り付けます (たとえば、collectstaticアプリの一部である場合は、単にリポジトリに追加します)。

これを簡単にするアプリについては、Django Chunks (`{% chunk "header-snippet" %} のようにページ内の場所に静的チャンクを出力) を見ることができますが、それは必要ないと思います。

于 2012-12-07T21:28:28.507 に答える