1

有人可以解释一下最后一行return (rv[0] if rv else None) if one else rv吗?尤其是角色one

def query_db(query, args=(), one=False):
    cur = g.db.execute(query, args)
    rv = [dict((cur.description[idx][0], value)
               for idx, value in enumerate(row)) for row in cur.fetchall()]
    return (rv[0] if rv else None) if one else rv
4

2 回答 2

2

one指示是否只返回一条记录。如果one为真,则返回第一个(rv[0]),如果有要找到的记录(if rv),否则返回所有记录。

于 2011-09-21T01:01:29.107 回答
1

默认情况下,oneis ,因此默认情况下,从返回False的列表中生成的字典。fetchall

如果您通过Truefor one,您将只获得查询的第一行(变成 a dict),或者None如果查询没有返回任何行。

于 2011-09-21T01:02:49.440 回答