app / views.pyファイルが非常に大きくなった場合、それを分離する必要がありますか?もしそうなら、これを行うための最良の方法は何ですか?
4 に答える
ビューをモジュールではなくPython パッケージにする開発者もいます。これは単にviews
、アプリケーションで呼び出されるディレクトリを作成し、各ビューをそのパッケージ内の独自のモジュール (ファイル) に配置することを意味します。
次に、__init__.py
ファイルを作成します (これがパッケージになります)。このファイルは空にすることも、すべてのビュー モジュールを独自の名前空間にインポートすることもできます。
空の場合は、必要な各ビューを直接インポートする必要があります。それ以外の場合は、views.py モジュールのようにインポートできます。
一般的な最善の方法はありません。しかし、あなたの状況に適した方法があります。
- ビューを独自のファイルに入れ、ビューにインポートします。これは、それがどのように機能するかを見るだけで良いです
- プロジェクト内に別のアプリを作成して、一連のビューを維持します
- ほとんどのアプリに共通のビューを共有する独自の汎用ビューを作成する
最初の例として 、モデルから始めて自分で作業することをお勧めします。
- モデルは何人いますか?
- それらは実際にすべて関連していますか、それともグループ化できますか?
- グループ化できる場合は、アプリを 2 つのアプリに分割します
- ビューも分割します
- どのビュー関数が類似しているかを判断し、それらを汎用にします。
同様の目的または機能を持つビューを 1 つのファイルに分割し、それを views.py に含めます。これは、読みやすさとメンテナンスのためだけに行います。たとえば、特定のオブジェクトまたはオブジェクトのグループの CRUD ビューです。
これらのビューをメインの views.py ファイルに直接インポートすることで、規則に慣れていない人でも何がどこにあるかを見つけることができます。
views/object_view.py
理想的な世界では、これを行う必要はありません。代わりに、プロジェクトが必要とするサブ目的ごとに、コードをさまざまな django アプリにリファクタリングしてみてください。そうすれば、views.py ファイルのみを分割する場合よりも、プロジェクトをより適切に分割できます。
プロジェクトをさまざまなアプリに分割する方法のヒントについては、James Bennett のPractical Django Projectsを読むことをお勧めします。これは、私が今再読しているものです :)