diff options
Diffstat (limited to 'doc/core/howto/dirdbm.html')
-rw-r--r-- | doc/core/howto/dirdbm.html | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/doc/core/howto/dirdbm.html b/doc/core/howto/dirdbm.html new file mode 100644 index 0000000..f2b86b2 --- /dev/null +++ b/doc/core/howto/dirdbm.html @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> + <head> +<title>Twisted Documentation: DirDBM: Directory-based Storage</title> +<link href="stylesheet.css" rel="stylesheet" type="text/css"/> + </head> + + <body bgcolor="white"> + <h1 class="title">DirDBM: Directory-based Storage</h1> + <div class="toc"><ol><li><a href="#auto0">dirdbm.DirDBM</a></li><li><a href="#auto1">dirdbm.Shelf</a></li></ol></div> + <div class="content"> +<span/> + +<h2>dirdbm.DirDBM<a name="auto0"/></h2> + +<p><code class="API"><a href="http://twistedmatrix.com/documents/12.1.0/api/twisted.persisted.dirdbm.DirDBM.html" title="twisted.persisted.dirdbm.DirDBM">twisted.persisted.dirdbm.DirDBM</a></code> is a DBM-like storage system. +That is, it stores mappings between keys +and values, like a Python dictionary, except that it stores the values in files +in a directory - each entry is a different file. The keys must always be strings, +as are the values. Other than that, <code class="API"><a href="http://twistedmatrix.com/documents/12.1.0/api/twisted.persisted.dirdbm.DirDBM.html" title="twisted.persisted.dirdbm.DirDBM">DirDBM</a></code> +objects act just like Python dictionaries.</p> + +<p><code class="API"><a href="http://twistedmatrix.com/documents/12.1.0/api/twisted.persisted.dirdbm.DirDBM.html" title="twisted.persisted.dirdbm.DirDBM">DirDBM</a></code> is useful for cases +when you want to store small amounts of data in an organized fashion, without having +to deal with the complexity of a RDBMS or other sophisticated database. It is simple, +easy to use, cross-platform, and doesn't require any external C libraries, unlike +Python's built-in DBM modules.</p> + +<pre class="python-interpreter" xml:space="preserve"> +>>> from twisted.persisted import dirdbm +>>> d = dirdbm.DirDBM("/tmp/dir") +>>> d["librarian"] = "ook" +>>> d["librarian"] +'ook' +>>> d.keys() +['librarian'] +>>> del d["librarian"] +>>> d.items() +[] +</pre> + +<h2>dirdbm.Shelf<a name="auto1"/></h2> + +<p>Sometimes it is neccessary to persist more complicated objects than strings. +With some care, <code class="API"><a href="http://twistedmatrix.com/documents/12.1.0/api/twisted.persisted.dirdbm.Shelf.html" title="twisted.persisted.dirdbm.Shelf">dirdbm.Shelf</a></code> +can transparently persist +them. <code>Shelf</code> works exactly like <code>DirDBM</code>, except that +the values (but not the keys) can be arbitrary picklable objects. However, +notice that mutating an object after it has been stored in the <code>Shelf</code> has no effect on the Shelf. +When mutating objects, it is neccessary to explictly store them back in the <code>Shelf</code> +afterwards:</p> + +<pre class="python-interpreter" xml:space="preserve"> +>>> from twisted.persisted import dirdbm +>>> d = dirdbm.Shelf("/tmp/dir2") +>>> d["key"] = [1, 2] +>>> d["key"] +[1, 2] +>>> l = d["key"] +>>> l.append(3) +>>> d["key"] +[1, 2] +>>> d["key"] = l +>>> d["key"] +[1, 2, 3] +</pre> + + + + + + </div> + + <p><a href="index.html">Index</a></p> + <span class="version">Version: 12.1.0</span> + </body> +</html>
\ No newline at end of file |