Python アプリの MVC パターンのモデル部分でクラスを構造化する際に問題があります。どのように物事を変えても、循環インポートに遭遇し続けます。ここに私が持っているものがあります:
モデル/__init__p.y
- すべてのモデルクラス名を保持する必要があるため、コントローラーまたはユニットテストケースなどから「モデルインポートユーザーから」実行できます
モデル/データベース.py
- データベースクラスを保持
- ORMを行うには、すべてのモデルクラスをインポートする必要があります
- 初期化は最初のモジュールのインポート時に実行する必要があります。つまり、余分な init 呼び出しやインスタンス化はありません (データベース クラスのすべてのメソッドは @classmethods です)。
モデル/User.py
- User モデル クラスを含む
- クエリを実行するには、データベース クラスにアクセスする必要があります
- 機能を共有するために、すべてのモデル クラスに共通の基本クラスから継承する必要があります (データベース永続化メソッド、パラメーター検証コードなど)。
私はまだ MVC を採用している実際の Python アプリを見たことがないので、私のアプローチはおそらく非 Pythonic です (そしておそらく言語にとらわれない混乱です...) - これを解決する方法について何か提案はありますか?
ありがとう、サイモン