いくつかのビューで作成したたくさんの関数を、他の多くのビューで再利用する必要があります。クラスを作成してクラスに入れる必要はありますか?もしそうなら、Djangoでどのように正確に行う必要がありますか?そして、私はどのように新しいビューでそれらを呼び出して起動しますか?django - 多くのビューで関数を再利用
答えて
ジャンゴビューは単なるPythonの機能です。他のPythonコードと同様に、他のPython関数を呼び出すことができます。関数を.pyファイルに入れ、インポートして関数を呼び出します。
もちろん、関数を保持するクラスを作成することは他の理由からも意味がありますが、ビューから呼び出す必要はありません。
私の視点から見ると、あなたのプロジェクトで広く使われている機能がたくさんある場合は、これをいくつかの別々のアプリケーションに入れるのが理にかなっています。私はこの目的のために 'contrib'という名前のモジュールを作成します。将来このコードを維持する時間を避けることができます
解決策は、あなたのアプリケーションフォルダにmyfunctions.pyファイルを作成し、ビューにインポートすることです。あなたのビューファイルは次のようになります:
import myfunctions
def my_view(request):
.....
foo = myfunctions.bar()
....
私はfoo = myfunctions.bar()と似たようなことをしましたが、myviews.bar()は新しいビューにあったので実行するだけです。今私はfoo = myfunctions.bar()を実行すると何も起こりません。 – avatar
あなたはDjangoに複雑に見えます。 Djangoはもう一つのPythonアプリケーションであり、Pythonの世界に住んでいます。たとえば、library.pyファイルを作成し、必要な場所にこのファイルをインポートすることができます(ライブラリの関数が必要なモジュールで)。データベースからデータを取得するためにライブラリの関数が必要な場合は、単にmodelをlibrary.pyにインポートして使用してください。
Djangoには、「モジュール」というような大きな考えはありません。あなたはアーキテクチャを作成し、あなたのケースで何がモジュールであるかを定義することができます。一般的に、これはそこからファイルをインポートできるように .pyファイル内の単純なディレクトリです。
希望しました。
- 1. djangoフォーム - フォーム要求関数を再利用
- 2. アンドロイドでの関数の再利用
- 3. 多くの関数で再利用のために$(this)変数を定義しているJQuery
- 4. ClearCaseビューを再利用
- 5. django - ログインテンプレートの再利用
- 6. Pythonの内部関数の再利用
- 7. Djangoは多くの関係
- 8. Django再利用可能マーケットプレイス
- 9. Androidで複数のアクティビティのビューを再利用
- 10. Django:どこで再利用可能な関数を配置しますか?
- 11. JQuery再利用可能な関数
- 12. アイテムのビューのコントローラからの角度再利用関数の値
- 13. Scalaでのオブジェクトの適用関数の再利用
- 14. 他のエンティティのビューの再利用
- 15. ビューアページのAndroidビューの再利用
- 16. ASP.NET MVCビュー&コントローラーを再利用
- 17. 再利用ビューのインスタンスがCaliburn.Micro
- 18. djangoとappengineモデルクラス間のコード再利用
- 19. 再利用可能なDjango Appのベーステンプレート
- 20. 変数を広く利用できるDjangoのオプション
- 21. Django testrunnerで再利用可能なDjangoアプリケーションをテストする
- 22. Grailsの多くの関係ビューに1
- 23. matplotlibを使用したPython - 描画関数の再利用
- 24. 関数を使用した配列の再利用
- 25. Django formsetsは多対多の関係で遅くなります
- 26. Rails STIおよびビュー再利用
- 27. MVC3コントローラとビュー再利用性
- 28. C++でコード(関数)を再利用する方法
- 29. 複数のTabItemでデータグリッドを再利用
- 30. 、SQLiteのデータベースではなく、再利用
myfunctions.pyと呼ばれる私のdjangoプロジェクトのルートにファイルを作成し、そこに関数を配置すると、私のビューでどのように呼び出せますか? – avatar