https://github.com/eaudeweb/htables
Python library for storing dictionaries in PostgreSQL HStore columns
https://github.com/eaudeweb/htables
Last synced: 5 months ago
JSON representation
Python library for storing dictionaries in PostgreSQL HStore columns
- Host: GitHub
- URL: https://github.com/eaudeweb/htables
- Owner: eaudeweb
- License: bsd-2-clause
- Created: 2012-05-02T11:56:59.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2021-03-29T16:44:37.000Z (about 5 years ago)
- Last Synced: 2024-08-09T01:07:09.837Z (almost 2 years ago)
- Language: Python
- Size: 96.7 KB
- Stars: 1
- Watchers: 6
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
.. role:: class
HTables
=======
HTables is a library for storing string-to-string mapping objects in a
database. Two backends are supported so far:
:class:`~htables.PostgresqlDB` and :class:`~htables.SqliteDB`.
.. _hstore: http://www.postgresql.org/docs/current/static/hstore.html
.. _psycopg2: http://initd.org/psycopg/
::
>>> import htables
>>> db = htables.SqliteDB(':memory:')
>>> with db.session() as dbs:
... dbs['tweet'].create_table()
... dbs['tweet'].new(text="Hello world!")
... dbs.commit()
Tables are collections of Rows. A row is basically a dictionary with an
extra ``id`` property. Its keys and values must be strings.
::
>>> with db.session() as dbs:
... tweet = dbs['tweet'].find_first()
... tweet['author'] = '1337 h4x0r'
... tweet.save()
... dbs.commit()
There are many ways of retrieving rows. The following all fetch the
same record::
>>> with db.session() as dbs:
... tweet_table = dbs['tweet']
... [tweet] = list(tweet_table.find())
... [tweet] = list(tweet_table.find(author='1337 h4x0r'))
... tweet = tweet_table.find_first()
... tweet = tweet_table.find_single()
... tweet = tweet_table.get(1)
Links
-----
* documentation_
* `source code`_
.. _documentation: http://packages.python.org/htables/
.. _source code: https://github.com/eaudeweb/htables/