Python Flask - простая функция запросов - PullRequest
1 голос
/ 21 сентября 2011

Может кто-нибудь объяснить мне последнюю строку 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

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

one указывает, следует ли возвращать только одну запись. Если one равно true, тогда он возвращает первое (rv[0]), если есть записи, которые должны быть найдены (if rv), в противном случае он возвращает все записи.

1 голос
/ 21 сентября 2011

По умолчанию one равно False, поэтому по умолчанию возвращается список диктовок, созданный из fetchall.

Если вы передадите True для one, вы получите только первую строку (превращенную в dict) запроса или None, если запрос не вернул ни одной строки.

...