如何使用准备好的语句使用Python/Django在SQlite中插入多条记录?
如何使用prepared语句使用Python/Django在SQlite中插入多条记录如何使用准备好的语句使用Python/Django在SQlite中插入多条记录?,python,django,sqlite,Python,Django,Sqlite,如何使用prepared语句使用Python/Django在SQlite中插入多条记录 http://docs.python.org/library/sqlite3.html#cursor-objects Python的SQLite库没有准备好的语句对象,但它们允许您使用参数化查询,并提供多组参数 编辑:请求的executemany示例: values_to_insert = [(1,"foo"), (2, "bar"), (3, "baz")] cursor.executemany("""
http://docs.python.org/library/sqlite3.html#cursor-objects
Python的SQLite库没有准备好的语句对象,但它们允许您使用参数化查询,并提供多组参数
编辑:请求的executemany
示例:
values_to_insert = [(1,"foo"), (2, "bar"), (3, "baz")]
cursor.executemany("""
INSERT INTO some_table ('item_num', 'item_name')
VALUES (?, ?)""", values_to_insert)
您可以使用executemany()并传递迭代器对象,例如插入100个整数及其平方:
def my_iter(x):
for i in range(x):
yield i, i*i
cursor.executemany("INSERT INTO my_table VALUES (?, ?)", my_iter(100))
如果您试图像PreparedStatement一样只插入一行
cursor.execute("""INSERT INTO table_name ('column1', 'column2') VALUES (?, ?)""", ("value1", "value2"))
也应该有效。值正在作为python元组传递。@Amber:谢谢您的回答。我遗漏了一个要点,即插入多条记录。。“execute()”只允许执行一个查询。。所以对我不起作用:)@mahendraliya这就是为什么
.executemany()
存在的原因:@Amber:我也读过executemany(),但很抱歉,我对python和sqlite都是新手。我的疑问是,如果我有一个文件名列表,我是通过在列表对象中添加值来准备的,那么我如何将它与ExecuteMay一起使用。。这是否就像简单地将list对象(比如fileList)传递给executemany()?。。任何代码片段都将不胜感激。。谢谢。@mahendraliya-根据请求添加了一个executemany
用法示例。@Amber:谢谢。。我将尝试一下,并在午餐后在这里发表评论。。如果有效,将接受答案:)OP询问插入多个记录/行,而不是一行,因此我看不出这是如何回答问题的。