如何使用 for 循环将列表中的行插入到 QSqltablemodel 中?

How to use for loop to insert row into QSqltablemodel from a list?

下面是数据库模型:

db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('book.db')
db.open()

self.model = QtSql.QSqlTableModel(self)
self.model.setTable("card")
self.model.select()

例如:

a = "name"
b = 30
c = "M"
data_row = [a, b, c]

r = self.model.record()
r.setValue("name", "name")
r.setValue("age", 30)
r.setValue("gender", "M")
self.model.insertRecord(-1, r)
self.model.select()

数据库有 3 列,分别是 'name'、'age'、'gender'。

我的问题是如何使用带有 for 循环的 QSqlTableModel 将行插入到 Sqlite table?

我尝试了以下对我有用的代码: 使用“for-loop”到 count-columns 和 zip() 函数进行并行迭代。

a = "name"
b = 30
c = "M"
data_row = [a, b, c]

columns = []
for col in range(self.model.columnCount()):
    columns.append(col)

r = self.model.record()
for col, rec in zip(columns, data_row):
    r.setValue(col, rec)

self.model.insertRecord(-1, r)
self.model.select()