处理sqlalchemy模型的Python方法

处理sqlalchemy模型的Python方法,sqlalchemy,python,Sqlalchemy,Python,我正在使用sqlalchemy,通过学习使用ruby/rails activerecord和datamapper的orm,它有点不同 因此,有了一些模型,需要我认为是类和实例级的方法,我发现python并没有做到这一点,或者说我对python的理解到目前为止还没有做到这一点。为模型构建新方法的python方法是什么:decorators、make模块和import方法,等等?我需要做很多事情,所以没有具体的编码问题,只是一个关于使用sqlalchemy处理模型的有效方法的一般性要求,其中需要处理

我正在使用sqlalchemy,通过学习使用ruby/rails activerecord和datamapper的orm,它有点不同

因此,有了一些模型,需要我认为是类和实例级的方法,我发现python并没有做到这一点,或者说我对python的理解到目前为止还没有做到这一点。为模型构建新方法的python方法是什么:decorators、make模块和import方法,等等?我需要做很多事情,所以没有具体的编码问题,只是一个关于使用sqlalchemy处理模型的有效方法的一般性要求,其中需要处理特定于模型的方法


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

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

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

呃,Python确实有classmethods和instancemethods。你到底在寻找什么?关于指出我错过或找不到的教程或代码示例的指导。我仍然处于大部分RTFM的中间,我认为我至少会要求得到一些指针。使用声明性的方法完成一些基本的设置,添加一些刚刚通过的方法,在SQL文档和教程和命令行之间进行大量的阅读-在一个基本的项目中学习的东西。我的问题只是想得到更多的投入。这与我还没能做到的一样;基本上是正确的查询,然后用一个简洁的界面将它们包装到模型中。这是一个有用的例子,我想把它变成一个“get_by_*”函数过滤器,以防止为一个模型编写100次(作为一个示例,并展望未来)