2.15. 辞書型データを使用したデータ操作

辞書型データを使って、データベースに対しデータ操作がが可能です。

>>> db['person'].insert(**{'name':'test1'})             # レコード挿入
1L
>>> print db(db['person']['name'] == 'test1').select()  # レコード検索
person.id,person.name
1,test1
>>> db(db['person']._id==1).update(**{'name':'test2'})  # レコード更新
1
>>> db(db['person']._id==1).delete()                    # レコード削除
1

これにより、変数を使ってデータ操作することができます。

>>> tablename = 'person'
>>> fieldname = 'name'
>>> data1 = 'test1'
>>> data2 = 'test2'

>>> db[tablename].insert(**{fieldname:data1})                   # レコード挿入
1L
>>> print db(db[tablename]['fieldname'] == 'test1').select()    # レコード検索
person.id,person.name
1,test1
>>> db(db[tablename]._id==1).update(**{fieldname:data2})        # レコード更新
1
>>> db(db[tablename]._id==1).delete()                           # レコード削除
1

なお、レコード更新・削除で _id 属性を使用していることに注意してください。 通常は id でも問題はありませんが、キーがidという名前でない可能性がある場合、_id を使用した方が便利です。

参考: Inserting and updating from a dictionary辞書からの挿入や更新