2011-09-21 15 views
1

誰かが最後の行を私に説明できますreturn (rv[0] if rv else None) if one else rv?特にoneの役割。Python Flask - 簡単なクエリ機能

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

oneは、単一のレコードのみを返すかどうかを示します。 oneが真の場合、見つかったレコードがある場合は最初のレコード(rv[0])を返します。見つからない場合はすべてのレコードを返します。

+0

大変ありがとうございます。 – Max

+0

rvを返すのはどうですか?返された値は次に反復することができます。なぜ2つの条件を使用するのかは明らかではありません。多分いずれも必要ではなかった。 – Alisa

+0

@ Alisa:もちろんですが、コードを書いた人は誰でも尋ねなければなりません。 –

1

デフォルトでは、oneFalseです。したがって、デフォルトでは、fetchallから生成されたディクショナリのリストが返されます。

あなたがoneためTrueを渡すと、クエリが行を返さなかった場合、あなただけの最初のクエリの行(dictになって)、またはNoneを取得します。

関連する問題