wq.db is a collection of Python modules for building robust, flexible schemas and REST APIs for use in creating field data collection apps and (more generally) mobile-first websites with progressive enhancement. wq.db is the backend component of wq and is geared primarily for use with wq.app, though it can be used separately. wq.db is built on the Django platform.
Installation
Support Matrix
wq.db 1.3 is tested with Python >= 3.6 and Django >= 2.2.
Python | Django | Django REST Framework | |
---|---|---|---|
wq.db 1.2 | 3.4 – 3.8 | 1.11, 2.x, 3.0, 3.1 | 3.9 – 3.12 |
wq.db 1.3 | 3.6 – 3.9 | 2.x, 3.0, 3.1 | 3.11 – 3.12 |
wq.db 2.0 (Future) | 3.6+ | 2.2+ | 3.11+ |
# Recommended: create virtual environment
# python3 -m venv venv
# . venv/bin/activate
# Install entire wq suite (recommended)
python3 -m pip install wq
# Install only wq.db
python3 -m pip install wq.db
See the documentation for more information.
API
wq.db.rest
Extends Django REST Framework with model-based views and serializers that facilitate creating an integrated website, REST API, and mobile app. The core of the library is an admin-like ModelRouter that connects REST urls to registered models, and provides a descriptive configuration object for consumption by @wq/app. wq.db.rest also includes a GeoJSON serializer/renderer.
wq.db.patterns
A collection of abstract models and serializers for use in constructing advanced design patterns including nested forms, EAV structures, and natural keys.