Models.py
ソース コード ファイルの内容をモデルごとに個別のファイルに分割したい Python App Engine アプリを開発していますが、すべてを Models というフォルダーに入れたいと考えています。問題は、それを行うと、アプリがクラスを見つけられなくなることです。私は何をすべきか?
この質問は MVC に関するものではありませんが、同じタイトルの別の質問は.
Models.py
ソース コード ファイルの内容をモデルごとに個別のファイルに分割したい Python App Engine アプリを開発していますが、すべてを Models というフォルダーに入れたいと考えています。問題は、それを行うと、アプリがクラスを見つけられなくなることです。私は何をすべきか?
この質問は MVC に関するものではありませんが、同じタイトルの別の質問は.
__init__.py
Models ディレクトリに空のファイルを置きます。
次に、アプリで。おそらく 1 レベル上で、Models ディレクトリ内のモジュールを次のように参照します。
import Models
そして、次のように何かをします:
Models.my_model.MyClassName
from
次のようにキーワードを使用することもできます。
from Models import my_model
次のように参照します。
my_model.MyClassName
モジュールから 1 つのメソッドのみが必要な場合は、次のようにすることもできます。
from Models.my_model import my_method_name
my_method_name()
ドキュメントへの必須のリンク。
10 個のクラスに対して 10 個のインポートがあることに関する Adam の回答へのコメントに応えて、まず、Python ではモジュールごとに 1 つのクラスを持つ必要がないことを忘れないでください。モジュールは機能ごとに編成する必要があるため、必要に応じて関連するクラスを 1 つのファイルにグループ化できます。
それでもすべてのクラスを一度にインポート可能にしたい場合は__init__.py
、構文を使用してファイル自体にすべてをインポートしてfrom submodule import Class
から、含まれているモジュールをインポートしてetcimport mainmodule
を参照するか、クラスを名前空間に直接インポートするために使用することもできます直接参照してください。mainmodule.Class1
from mainmodule import Class1, Class2, Class3
Adam Bernier は、パッケージがどのように機能するかについて技術的に適切に説明しています。プロジェクトの手配と発送の方法については、 http://jcalderone.livejournal.com/39794.htmlに詳しく説明されています。