現在、私は会社のWebインターフェースをコーディングしているところです。
このWebインターフェースは、PythonマイクロフレームワークFlaskに基づいています。このインターフェイスを構築するためにMVCの原則を使用したいと思います。そして、私はいくつかの質問を念頭に置いています。
モデルには、SQLAlchemyを使用したORMマッピングのデータが含まれます。問題はありません。
ビューはいくつかのhtmlとcssに基づいていますが、ここでも問題はないと思います。
一方、コントローラーはちょっと面倒です。
ページをモジュールに分割し、スクリプトアプリケーションを個別のモジュールに分割し、これらすべてのモジュールをコントローラーのパッケージにパックします。たとえば、次のようになります。
- セッションモジュール(ログイン/ログアウト/ Cookie)
- 管理者モジュール(登録済みアカウント/コンテンツなどの管理)
- アプリケーションスクリプト1モジュール
- アプリケーションスクリプト2モジュール
- アプリケーションスクリプト3モジュール
テンプレートをレンダリングするには、ルーティングなどを使用する必要があることを理解しています。しかし、特定のリンクが呼び出された場合、特定のモジュールを呼び出し、そこからメソッドをプルするようにするにはどうすればよいですか。ルーティング用に1つのメインコントローラーを作成し、ルーティング内のすべてのメソッドに対して、上記のモジュールの1つをインポートしても大丈夫ですか?
@app.route('/')
def index():
return render_template("index.html")
@app.route('/login/', methods = ('GET', 'POST'))
def login():
from session import login
-> call method from 'login' here
@app.route('/account/<username>', methods = ('GET', 'POST'))
def login():
from administrator import view_account
-> call method from 'view_account' here
これは良い習慣ですか?または、ヘッダーから始めて、このパッケージに含まれるすべてのモジュールをインポートする必要があります。私の最初の考えは、スクリプトのサイズが原因でアプリが長く読み込まれないようにすることでした。そのモジュールを必要とするページにアクセスした場合など、特定のモジュールのみが呼び出されます。