4

現在の Flask プロジェクト用に単純なアクセス許可システムを構築しました。それを拡張機能に分割して、共有して他のプロジェクトで使用できるようにしたいと考えています。拡張機能で使用するユーザーの SQLAlchemy データベース接続を取得する方法に苦労しています。

具体的には、私の拡張機能を使用しているすべての人のために、データベースにいくつかのモデルを作成したいと考えています。これを行うためのパターンがあると確信していますが、私はそれを認識していません。

ここにいくつかの詳細情報を含めましたhttp://bit.ly/1dqubJQ

4

2 に答える 2

3

この種の問題で私が気に入っているパターンは、拡張機能でデータベース モデルを定義するのではなく、開発者がモデルを継承できる mixin クラスを提供することです。ミックスインに加えて、データベースからのモデルの読み込みや保存などの操作用のコールバック関数をアプリ開発者が提供することもできます。

この手法は、たとえばFlask-Loginで使用されます。拡張データベースにとらわれないので、私はそれが好きです。あなたは SQLAlchemy でこれを行うことに興味があると言いましたが、拡張機能を公開すると、ある時点で誰かがそれを Mongo や Peewee で、または ORM レイヤーなしで使用したいと思うでしょう。拡張機能のデータベース エンジンについて何も想定しない場合、これらすべてがサポートされます。

于 2013-08-28T18:13:03.550 に答える