Flask を使用して簡単ではあるが簡単ではないアプリケーションを作成しようとしていますが、ドキュメントでは説明されていない状況に遭遇し続けています。
アプリを異なるモジュールに分割したいのですが、メイン モジュール以外からメインapp
オブジェクト (またはdb
から)にアクセスするのは難しいようです。flask-sqlalchemy
すべてがアクセスできるグローバルとして扱う独自の方法を実際に作成する必要があるようです。これには、疑わしいコードと少しの時間が必要です。
app
とはどちらもdb
、メイン アプリケーションがインスタンス化されるレベルで作成され、すべての例では、それらがトップ レベルで使用可能であることを前提としています。しかし、異なる URL ハンドラーを異なるモジュールに分割すると、@app.route
デコレーターを使用できなくなります。で回避できますがapp.add_url_rule('/...', some.module...)
、アプリはその関数に渡されません。
で同じことが起こります- に貼り付ける必要があるのか 、それとも何らかの方法でアクセスできるようにする必要があるのdb
か わかりません。ただし、それを行っても、モデルを別のモジュールに移動するのには役立ちません-モデルをインポートするときにどのようにアクセスすればよいですか? すべての例は、ローカル変数として利用できることを前提としています。g
app
db
明らかな何かが欠けていますか、それともここで間違ったタスクにフラスコを使用しようとしていますか?