放松与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第三方库


热门话题
java为引用变量指定默认值   java在2D数组中旋转innersquare   java将hashmap键值与int进行比较   java程序中的并发监视器陷入死锁   安卓 java。lang.NoClassDefFoundError:java。awt。光标   java有没有更好的方法来引用包含对象的对象?   如何在Java编程中循环代码块   java如何在Junit5中使用Serenity?   java使用ANTLR识别JavaScript文件中的全局变量声明   EJB查询对象生成的java视图SQL?   java查找股票报价的范围   java错误:(453,69)不允许使用字符串类型(在值为“”的“活动\u水平\u边距”处)   java安装的环境变量   amazon web服务在使用awssdkjava上载到S3存储桶时发生直接错误   java在Android的ArrayList中添加相等的值   尝试打开MyEclipse Enterprise Workbench时出现ide“无法创建java虚拟机”错误   java如何使用单元格指定的行和列更改jTable的单元格颜色?   java如何等待文件从系统目录复制到具有根访问权限的外部存储