db_utils.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:xiaodi 作者: shenaishiren 项目源码 文件源码
def get_db_object_by_attr(object_, **kwargs):
    assert len(kwargs) >= 1, 'function get_db_object_by_attr need argument'

    if 'ignore' in kwargs:
        ignore = kwargs.pop('ignore')
    else:
        ignore = False
    if len(kwargs) > 1:
        filter_ = and_(*[getattr(object_, key) == value
                         for key, value in kwargs.iteritems()])
    else:
        key, value = kwargs.popitem()
        filter_ = getattr(object_, key) == value
    user = yield execute(sqls=[('query', object_),
                               ('filter', filter_),
                               ('first', None)])
    if not user and not ignore:
        raise gen.Return(invalid_argument_error('wrong %s' % key))

    raise gen.Return(user)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号