处理sqlalchemy模型的pythonic方式

时间:2012-05-06 00:49:10

标签: sqlalchemy python

我正在使用sqlalchemy,来自学习ory with ruby​​ / rails activerecord和datamapper,它有点不同。

所以,有了一些模型并且需要我认为的类和实例级方法,我看到python没有这样做,或者到目前为止我对python的理解不会这样做。为模型构建新方法的pythonic方法是什么:装饰器,制作模块和导入方法等?我需要各种各样的东西,所以没有具体的编码问题,只是一般性请求指导有效的方法来处理模型与sqlalchemy需要处理模型特定的方法。

注意:这不是讨论语言细节的邀请,我只提到我到目前为止所学到的内容以及如何在新情况下将其应用到应用程序中。

1 个答案:

答案 0 :(得分:6)

您可以在模型定义中将模型方法作为类方法。例如:

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")