2

たとえば、django で wiki やフォーラムなどを含む複雑なサイトを作成している、または別のサイトから再利用する予定の独自のアプリを作成しているとします。

たとえば、下部にフォーラムがある wiki ページを作成したり、以前に作成した wiki アプリを別のグラフィカル レイアウトで再利用したりしたいと考えています。

この種の再利用を可能にするためにアプリを構成する最良の方法は何ですか?

これまでのところ、urls.py でアプリに独自の URL を与えてきました。ただし、複数のアプリを 1 つのページにまとめたい場合、これは機能しません。

さらに、私がオンラインで見つけたほとんどのアプリには、完全な html を含む独自のテンプレートが付属しており、コンテキストを作成/準備するロジックと、リクエストを処理して応答を生成するロジックを分離していません。

ここでのベストプラクティスは何ですか? 職業はなんですか?オンラインでダウンロードしたアプリケーションのテンプレートを編集しますか? アプリケーションに適合するようにリファクタリングしますか?

自分のアプリケーションはどうすればよいですか? コンテキストを取得するメソッドとそれをレンダリングするメソッドを持つようにそれらを構造化しますか?

4

1 に答える 1

0

Django は、すぐに使用できるコンポーネント指向アーキテクチャーを十分にサポートしていません。これも時々問題になると思います。ここで問題に直面します。

  1. 建築
  2. コード

アーキテクチャ: Django はコンポーネント指向ではないため、すべてのアプリもコンポーネント指向ではありません。これらのアプリの設計者とコーダーは、そのことを考えていませんでした。そのため、彼らはアプリとのインターフェースとなる「ビュー」を構築しただけです。もっと「プラグ可能な」ものを手に入れる必要があります。

コード:それを構築することに決めたら、そのためのサポートを見つける必要があります。ほとんどの Django アプリはかなり適切にコーディングされているため、ビューには多くのコードがありませんが、他の場所で抽象化されています。そうすれば、そのコードを再利用して独自のコンポーネントを構築できます。

例:サードパーティの Wiki アプリを使用しているとします。そのウィキには、最高ランクのタグを表示するビューと、ウィキ エントリを作成するその他のビューがあります。コードが十分に優れている場合 (Django にはかなり優れたコミュニティがあるためだと思います)、それをリファクタリングしてコンポーネントを使用できます。エントリを作成するためのビューは、独自のサイトにプラグインできるフォームを使用する必要があります。そして、最高ランクのタグを取得するためのビューは、おそらく何らかのユーティリティ関数またはタグ マネージャーのメソッドを使用します。その場合、独自のニーズに合わせてリファクタリングできます。

それが役に立てば幸い。

于 2012-12-18T17:47:06.463 に答える