Discuss / Python / 源代码的Model类里面的findNumber方法是干嘛用的呢

源代码的Model类里面的findNumber方法是干嘛用的呢

Topic source
 @classmethod
    async def findNumber(cls, selectField, where=None, args=None):
        ' find number by select and where. '
        sql = ['select %s _num_ from `%s`' % (selectField, cls.__table__)]
        if where:
            sql.append('where')
            sql.append(where)
        rs = await select(' '.join(sql), args, 1)
        if len(rs) == 0:
            return None
        return rs[0]['_num_']

代码我复制出来了,这个是类方法,代码的意思我的理解是:条件查询,并且只查一个给定字段别名为_num_,取查询结果第一行的该字段的值,不知道这样理解对不对

字段名是通过参数selectField去传递的,例如User.findNumber(selectField``=``'id'``)  _num_返回字典的key通过这个key去获得查询对应的值, findNumber类方法传递数据库关键字去查询,返回的rs是一个list因为调用select函数设置了参数size=1,所以这个list的只有一个元素,这个元素是一个dict,存储其中key为'_num_'对应的value为根据关键字查询对应的字段的值,所以最后返回的rs[0]['_num_']是根据传递的关键字返回这个字段在

数据库中对应的值,例如调用 User.findNumber(selectField='id')会返回数据库中关键字为字段名为id的第一条数据对应的值


  • 1

Reply