如何在不使用完整的ORM的情况下构建SQL查询?

时间:2012-07-14 13:56:39

标签: python sql google-app-engine

我正在编写一个在Google App Engine上运行的Python应用程序,并将数据写入Google Fusion Table。 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查询的最佳方法是什么?

1 个答案:

答案 0 :(得分: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

找到更多信息