在Python中构建SQL查询
有没有什么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。