6

Models.pyソース コード ファイルの内容をモデルごとに個別のファイルに分割したい Python App Engine アプリを開発していますが、すべてを Models というフォルダーに入れたいと考えています。問題は、それを行うと、アプリがクラスを見つけられなくなることです。私は何をすべきか?

この質問は MVC に関するものではありませんが、同じタイトルの別の質問は.

4

3 に答える 3

12

__init__.pyModels ディレクトリに空のファイルを置きます。

次に、アプリで。おそらく 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()

ドキュメントへの必須のリンク。

于 2010-02-13T01:27:44.600 に答える
4

10 個のクラスに対して 10 個のインポートがあることに関する Adam の回答へのコメントに応えて、まず、Python ではモジュールごとに 1 つのクラスを持つ必要がないことを忘れないでください。モジュールは機能ごとに編成する必要があるため、必要に応じて関連するクラスを 1 つのファイルにグループ化できます。

それでもすべてのクラスを一度にインポート可能にしたい場合は__init__.py、構文を使用してファイル自体にすべてをインポートしてfrom submodule import Classから、含まれているモジュールをインポートしてetcimport mainmoduleを参照するか、クラスを名前空間に直接インポートするために使用することもできます直接参照してください。mainmodule.Class1from mainmodule import Class1, Class2, Class3

于 2010-02-13T11:58:43.270 に答える
1

Adam Bernier は、パッケージがどのように機能するかについて技術的に適切に説明しています。プロジェクトの手配と発送の方法については、 http://jcalderone.livejournal.com/39794.htmlに詳しく説明されています。

于 2010-02-13T02:12:09.353 に答える