在Python中构建SQL查询

0 投票
2 回答
3053 浏览
提问于 2025-04-16 02:42

有没有什么Python库可以帮助从变量和类生成SQL查询?

举个例子,开发者不想手动写创建查询语句,而是可以创建一个表示“创建表”的对象,里面包含想要的列名列表。然后这个对象会返回一个字符串,这个字符串就可以用作查询语句。如果这个库还能支持多种数据库的语法(比如SQLite、Oracle、MySQL等),那就更好了。

2 个回答

1

标准的 Python MySQLdb 包在处理变量时会自动加上必要的引号,只要你给它这个机会。如果你担心 SQL 注入攻击,这个包会帮你处理得很好。

c.executemany(
      """INSERT INTO breakfast (name, spam, eggs, sausage, price)
      VALUES (%s, %s, %s, %s, %s)""",
      [
      ("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
      ("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
      ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )
      ] )

如果你不想自己处理这些,可能可以考虑使用一些 Python 的网页框架,比如 Django 等,这些框架可以帮你更简单地管理数据库。

2

现在,Python中最好的对象关系映射工具包可能就是大家都很熟悉的 SqlAlchemy

撰写回答