3

私はsqlalchemyを使用していますが、ruby / rails activerecordとdatamapperを使用してormを学習しているため、少し異なります。

したがって、いくつかのモデルがあり、クラスおよびインスタンスレベルのメソッドとして私が考えるものが必要な場合、Pythonはこれを行わないか、これまでのPythonのレベルではこれを行わないことがわかります。モデルの新しいメソッドを構築するためのPythonの方法は何ですか:デコレータ、モジュールの作成、メソッドのインポートなど?私はさまざまなことをする必要があるので、特定のコーディングの質問はありません。モデル固有のメソッドを処理する必要があるsqlalchemyでモデルを処理する効果的な方法に関するガイダンスの一般的な要求だけです。

注:これは言語の詳細を議論するための招待状ではありません。これまでに学んだことと、これを新しい状況で適用する方法についてのみ説明します。

4

1 に答える 1

10

モデルメソッドは、モデル定義のクラスメソッドとして作成できます。例えば:

class User(object):

    @classmethod
    def get_by_username(cls, dbsession, username):
        return dbsession.query(cls).filter(cls.username==username).scalar()

mapper(User, tables.auth_user,
    properties={
        ...
        }
    )

クラスをテーブル固有のメソッドのコンテナとして使用できます。このような:

user = User.get_by_username(session, "me")
于 2012-05-06T01:31:34.460 に答える