注意,pypadb 0.1.14 版本破坏性变更。
命名更改:
pypadb.conf.db_configurer -> pypadb.conf.db (module)
pypadb.conf.table_configurer -> pypadb.conf.table (module)
pypadb.conf.db.DbConfigurer -> pypadb.conf.db.DbConfig (class)
pypadb.conf.table.TableConfig -> pypadb.conf.table.TableConfig (class)
pypadb.conf.db.db_configurer -> pypadb.conf.db.db_config (attribute)
pypadb.conf.table.tables -> pypadb.conf.table.table_pool (attribute)
沿用 pypadb 使用文档 #2 的表和实体类,这一篇将会使用 pypadb.conf.table_configurer.tables
来进行实体类和表的映射,极大的增加编写 CURD 的效率。
初始化
from pypadb.conf.table_configurer import tables
tables.init_tables(test=Test)
init_tables
以 表名=类 的形式接受一些 kwargs
,可以多次调用,重复的值会覆盖。
在调用后可以用 tables.test
或者 tables['test']
的形式操作数据表。
insert
# 单个插入
tables.test.insert(Test(content='123'))
# 批量插入
tables.test.insert([Test(content='111'), Test(content='222')])
insert
方法接受一个参数作为插入的实体对象,可以为一个对象或者 list
。返回插入后的主键。为 list
时返回值为最后插入的主键。
update
# 更新 id 为 1 的数据
tables.test.update(Test(content='333'), id=1)
update
方法第一个参数为修改的实体对象,后面还有若干 kwargs 作为查询条件。
需要注意的是,查询条件为空时 update
方法不会修改任何值。
delete
# 删除 id 为 1 的数据
tables.test.delete(id=1)
和 update
方法相同,kwargs 为空时 delete
方法不会进行任何操作。