A simple HTTP accessible database for IoT projects
Project description
BlanketDB
BlanketDB is a very simple database written in Python based on SQLite. It is intended for small IoT projects where you need a quick way to collect and store data from sensors and other devices. You communicate to BlanketDB using HTTP GET / POST / DELETE requests. Request and response bodies are usually JSON, but you can also POST HTML forms directly to BlanketDB. There is no schema in the database, you simply store objects in buckets.
BlanketDB is free software provided under a MIT license. Documentation is available at https://blanketdb.readthedocs.io.
Why is it called BlanketDB? Well, a blanket is simple, lightweight, portable and keeps you warm. But if you really want to relax, you’ll need a couch.
Features
GET / POST / DELETE requests to communicate with BlanketDB
JSON requests / responses
HTML forms can POST directly to BlanketDB
Data stored in buckets
Schemaless
Query using various parameters to a HTTP GET request
Data is stored in a single file on the file system which is a SQLite database
BlanketDB is a single Python file without any dependencies besides the standard library
No sequrity whatsoever; BlanketDB is completely open to readers and writers (use with care!)
Quickstart
To install BlanketDB, you’ll need a Python (>=3.4) installation with pip:
$ pip install blanketdb
To use BlanketDB as a standalone database (and communicate over HTTP), enter the following command:
$ python3 -m blanketdb -i localhost -p 8080 -f /path/to/db.sqlite
BlanketDB will now serve its web interface at http://localhost:8080. You can open this page in your browser to check if everything works.
To use BlanketDB in a Python project, enter the following code:
from blanketdb import BlanketDB
db = BlanketDB('/path/to/db.sqlite')
# you can now use db using its Python API
db.store_dict(x='test')['id']
for entry in db:
print(entry)
# db is alse a wsgi conforming callable
# you can use it e.g. with the wsgi reference implementation
from wsgiref.simple_server import make_server
httpd = make_server('localhost', 8080, db)
httpd.serve_forever()
Detailed documentation is available at https://blanketdb.readthedocs.io.
Credits
Main author and project maintainer is luphord.
This package was prepared with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.4.0 (2020-02-26)
Start uwsgi using http protocol by default in DOCKERFILE (s.t. standalone use is possible)
Overwrite CMD in docker-compose file to communicate via uwsgi protocol between nginx and blanketdb container
0.3.4 (2020-02-26)
Support Python 3.8
0.3.3 (2019-12-12)
Split tests into Python and HTTP API tests
Added tests that can be executed against an actual HTTP API of BlanketDB
0.3.2 (2019-12-04)
Release to trigger build on dockerhub
0.3.1 (2019-03-06)
Improved clarity with default values
0.3 (2019-03-06)
Type annotations for BlanketDB
Python 3.4 is not supported anymore (as it does not know type annotations)
0.2.2 (2019-01-31)
setuptools entrypoint for cli
quickstart documentation
added logo
0.2.1 (2019-01-24)
fix tag confusion
0.2.0 (2019-01-24)
Added CLI for starting BlanketDB with wsgiref.simple_server
Tests for BlanketDB Web API using webtest
Added documentation for usage and Web API
0.1.0 (2019-01-18)
First release on PyPI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file blanketdb-0.4.0.tar.gz
.
File metadata
- Download URL: blanketdb-0.4.0.tar.gz
- Upload date:
- Size: 36.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd57f3e250bf1c9918fa93537bce081b9677215ebbcf77fbf4858e55ed548dc6 |
|
MD5 | 0f6d24696d0dbb8f02cb8ecca92846b6 |
|
BLAKE2b-256 | 4db1e5186bc02d5d854ffc0aa9d6d24727e5c6232b0a48c9cf0034e97ef6662e |
File details
Details for the file blanketdb-0.4.0-py2.py3-none-any.whl
.
File metadata
- Download URL: blanketdb-0.4.0-py2.py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4143fdf8142ab3d375f1eb85cff1c14856d2124b30bf7921446bcb2a1cbc2adc |
|
MD5 | ba8b414cc0f8a1bd30392b4a9ab6d669 |
|
BLAKE2b-256 | b2a9a4b210dbe5f7bf1d5ec8b486f338299007c468c713499c4b66632078addf |