放松与sqlite的接口

dumptruck的Python项目详细描述


自卸车是一个与sqlite数据库类似的文档界面。


quick start
——
install,保存数据并使用默认设置检索数据。


=dumptruck()

\save
最简单的"insert"调用如下所示。

dt.insert({"firstname":"thomas","lastname":"levine"})

它使用数据库"dumptruck.db"中的表"dumptruck"
。如果需要,它会创建或更改表。


如果插入一行,"dumptruck.insert"返回行的行ID。

dt.insert({"foo","bar"},"new table")==1

` dumptruck.insert`返回
新行的行ID列表。

dt.insert([{"foo","one"},{"foo","two"},"new table")==[2,3]


您可以使用'upsert'(使用
相同的语法)替换现有行。



每行一个字典。

=dumptruck(dbname="bucket wheel挖掘机.db")

实际上它最多需要四个关键字参数。


*`dbname'是要保存到的数据库文件;默认值为dumptruck.db.
*`vars_table`是用于'dumptruck.get_var`
和'dumptruck.save_var`;默认值为'u dumptruckvars`。将其设置为"none"
以禁用get-var和save-var方法。
*"auto-commit"是是否应自动提交对数据库的更改;如果将其设置为"false"
,必须使用"commit"方法或"commit"keywoard参数提交更改。
*"adapt_and_convert"是是否应自动转换类型;使用
此on dates将插入为dates、lists as lists和&c。

最简单的"insert"调用如下所示。

dt.insert({"firstname":"thomas","lastname":"levine"})

您可以指定另一个表;
这将保存到表"diesel engineers"。

dt.insert({"firstname":"thomas","lastname":"levine"},"Diesel Engineers")

"lastname":"assange"}
]
dt.insert(data)


"authors":["robert bringhurst"]},
{"title":"how to read a book","authors":["mortimer adler","charles van doren"]}
]
dt.insert(data)


当您查询它时,它将返回为原始的python对象。

-简单的pickle接口。

pickle和unpickle为您的复杂对象。


E?"sf"amp;'`

空值
`无'字典值始终等于键不存在。
也就是说,这些插入命令是等效的。

dt=dumptruck()
dt.insert({u'foo':8,u'bar':none}
dt.insert({u'foo':8})


它们通过这个sql将值设置为默认值。


insert into foo default values


此命令不起任何作用。


dt.insert([])


但是,如果尝试将它们传递给"dumptruck.create廑table",则会出现一个错误。


每行字典
。它们被强制使用不同的python类型,具体取决于数据库类型。


您可以记录脚本的最后一次运行要到达的页。

dt.save_ar('last_au page',27)
27==dt.get_ar('last_au page')

它存储在"dumptruckvars"中。

数据库。

dt.table s()

`dumptruck.drop`删除表。


dt.drop("柴油工程师")

`dumptruck.dump`将整个特定表作为字典列表返回。


dt.execute('select*from`coal`;)

\您可以像这样使用"dumptruck.insert"方法
,方法是用"create_only=true"调用它。


例如,如果表"tools"不存在,下面的调用将用"toolname"和"weight"列创建表"tools",类型是"text"和"integer",
,但不会将字典值("jackhammer"和58)插入表中。

dt.创建表({"toolname":"jackhammer","weight":58},"tools")

传递ordereddict。

dt.create_table(ordereddict([("toolname","jackhammer"),("weight",58)),"tools")


>将按指定顺序创建列。


要创建索引,
首先创建一个空表。(请参见上面的"创建空表"。
然后,使用"dumptruck.create_index"方法。

dt.create_index(['toolname','tools')

这将在"tool"列上创建非唯一索引。到CR创建一个唯一的索引,使用关键字参数"unique=true"。

dt.创建索引(['toolname','tools',unique=true)

dt.还可以指定多列索引。


dumptruck根据相关表和列的名称。
上一示例中创建的索引可能命名为"dt_u tools_u toolname_u weight"。

但是这里
是相关的sqlite sql命令。

dt.execute('pragma index_info(dt_u tools_toolname_weight)')

###延迟提交
默认情况下,"insert"、"get-var"、"drop"和"execute"方法会自动提交更改。
您可以通过向方法传递"commit=false"来停止其中一个方法的提交。
使用"commit"方法手动提交。例如:

dt=dumptruck()
dt.insert({"name":"bagger 293","manufacturer":"takraf","height":95},commit=false)
dt.save_ar('页码',42,commit=false)
dt.commit()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
iOS MDM注册配置文件请求/Profile使用java对证书进行签名   java如何调试GWT项目中的PHP文件   Mac和Windows之间的Java文件getFreeSpace差异   java从ArrayList进入JComboBox   ApacheKafka如何执行zookeeperserverstart。我的java程序中的bat文件?   JAXRS应用程序的java初始化   java如何为double覆盖compareTo方法?   使用进程动态运行java代码   sockets java。网SocketException:权限被拒绝openshift   java PorterduffXfermode:清除位图的一部分   其他线程中变量的java更改侦听器   java如何初始化接口实例以与父片段中的子片段通信   java Cordova插件在构建时出错,源代码1.6中不支持菱形运算符使用源代码7   java是学习编程的教育游戏吗?   在不同机器上使用JasperReports API运行代码时出现java问题   java Spring引导延迟Flyway序列化循环依赖   未为加密/解密初始化java密码