0

Google App Engineで実行され、GoogleFusionTableにデータを書き込むPythonアプリを作成しています。Fusion Tables APIは、SQLのようなクエリを使用して行を挿入します。

私は現在、次のようなSQLクエリを作成しています。

fusion_table_id = "gobblygook"
name = "John Doe"
rank = "Captain"
serial_number = 42
SQL = "INSERT INTO %s (name, rank, serial_number) VALUES (%s, %s, %s)" % (fusion_table_id, name, rank, serial_number)

これは明らかに理想的とは言えません。攻撃の可能性は別として、私はあらゆる種類の引用エスケープの問題に直面しています。

本格的なORMを使用せずに(実際にデータベースに接続する必要はありません)、これらの種類のSQLクエリを構築するための最良の方法は何ですか?

4

1 に答える 1

0

フォーマット文字列は、SQL クエリを処理する優れた方法を提供すると思います。

    params = {
        'fusion_table_id': 'gobblybook',
        'name': 'John Doe',
        'rank': 'Captain',
        'serial_number': 42,
        }

    SQL = "INSERT INTO {fusion_table_id} (name, rank, serial_number) VALUES ({name}, {rank}, {serial_number})".format(**params)

詳細については、PEP-3101を参照してください。

于 2012-07-14T15:15:23.327 に答える