1

私は正確に何をしたいのですcursor.mogrifyが、生産に適した方法で。

文字列を連結してクエリを作成するレガシー Python コードを更新しています。安全に脱出するには、これを変更する必要があります。

クエリは長く、実行されるサーバーとは別のサーバーで構築されるため、cursor.executeエスケープするために使用する通常のプロセスは、コードの明確さと実用的な実行可能性の両方の理由から魅力的ではありません。

私は mogrify を使用しますが、これはデバッグのみを目的としていることを理解しています。

私は周りを見回しましたが、これに対する良い答えが見つからないようです。何を指示してるんですか?

4

1 に答える 1

3

を使用しないでくださいtuple。使うdictionary

d = {'p1': val1, 'p2': val2}
cur.execute("""
    select *
    from t
    where col1 = %(p1)s and col2 = %(p2)s
    """, d
)

オプションのパラメーターがある場合は、null として渡されます

d = {'p1': None, 'p2': val2}
cur.execute("""
    select *
    from t
    where
        (%(p1)s is null or col1 = %(p1)s)
        and
        (%(p2)s is null or col2 = %(p2)s)
    """, d
)

sshサーバーへの接続を確立し、それを介して接続します。

ssh -L 5432:localhost:5432 remotehost.com
于 2013-12-20T21:23:51.700 に答える