Skip to main content

Django design patterns and REST API for citizen science field data collection.

Project description

|wq.db|

`wq.db <https://wq.io/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 <https://wq.io>`__ and is geared primarily for use with
`wq.app <https://wq.io/wq.app>`__, though it can be used separately.
wq.db is built on the `Django <https://www.djangoproject.com/>`__
platform.

|Latest PyPI Release| |Release Notes| |Documentation| |License| |GitHub
Stars| |GitHub Forks| |GitHub Issues|

|Travis Build Status| |Python Support| |Django Support|

Support Matrix
^^^^^^^^^^^^^^

wq.db 1.1.0 is compatible with Django 1.11 and newer, and optimized for
Python 3.

+---------------+-----------+-----------+--------------------------+
|   | Python | Django | Django REST Framework |
+===============+===========+===========+==========================+
| **wq.db | 2.7, 3.4, | 1.8, | 3.6 |
| 1.0.0** | 3.5, 3.6 | 1.10, | |
| | | 1.11 | |
+---------------+-----------+-----------+--------------------------+
| **wq.db | 2.7\*, |
| 1.1.0** | 3.4, 3.5, |
| | 3.6 \| |
| | 1.11, 2.0 |
| | \| 3.8 |
| | **wq.db |
| | 2.0 |
| | (Future)* |
| | * |
| | \| 3.4+ |
| | \| 2.0+ |
| | \| TBD |
+---------------+-----------+-----------+--------------------------+

\* Python 2.7 support is no longer tested, though it should still work
for now.

Getting Started
---------------

.. code:: bash


# Recommended: create virtual environment
# python3 -m venv venv
# . venv/bin/activate

# Install entire wq suite (recommended)
pip install wq

# Install only wq.db
pip install wq.db

See `the documentation <https://wq.io/docs/>`__ for more information.

Features
--------

wq.db provides the following modules:

`wq.db.rest <https://wq.io/docs/about-rest>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Extends the excellent `Django REST
Framework <http://django-rest-framework.org>`__ with a collection of
views, serializers, and context processors useful for creating a
progresively enhanced website that serves as its own mobile app and `its
own REST API <https://wq.io/docs/website-rest-api>`__. The core of the
library is an admin-like `ModelRouter <https://wq.io/docs/router>`__
that connects REST urls to registered models, and provides a descriptive
`configuration object <https://wq.io/docs/config>`__ for consumption by
`wq.app's client-side router <https://wq.io/docs/app-js>`__. wq.db.rest
also includes a GeoJSON serializer/renderer.

`wq.db.patterns <https://wq.io/docs/about-patterns>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A collection of abstract models and serializers for use in constructing
advanced `design patterns <https://wq.io/docs/about-patterns>`__
including `nested forms <https://wq.io/docs/nested-forms>`__, `EAV
structures <https://wq.io/docs/eav-vs-relational>`__, and `natural
keys <https://github.com/wq/django-natural-keys>`__. Includes
`wq.db.patterns.identify <https://wq.io/docs/identify>`__, an
installable Django app module to help manage third-party entity
identifers.

.. |wq.db| image:: https://raw.github.com/wq/wq/master/images/256/wq.db.png
:target: https://wq.io/wq.db
.. |Latest PyPI Release| image:: https://img.shields.io/pypi/v/wq.db.svg
:target: https://pypi.org/project/wq.db
.. |Release Notes| image:: https://img.shields.io/github/release/wq/wq.db.svg
:target: https://github.com/wq/wq.db/releases
.. |Documentation| image:: https://img.shields.io/badge/Docs-1.1-blue.svg
:target: https://wq.io/wq.db
.. |License| image:: https://img.shields.io/pypi/l/wq.db.svg
:target: https://wq.io/license
.. |GitHub Stars| image:: https://img.shields.io/github/stars/wq/wq.db.svg
:target: https://github.com/wq/wq.db/stargazers
.. |GitHub Forks| image:: https://img.shields.io/github/forks/wq/wq.db.svg
:target: https://github.com/wq/wq.db/network
.. |GitHub Issues| image:: https://img.shields.io/github/issues/wq/wq.db.svg
:target: https://github.com/wq/wq.db/issues
.. |Travis Build Status| image:: https://img.shields.io/travis/wq/wq.db/master.svg
:target: https://travis-ci.org/wq/wq.db
.. |Python Support| image:: https://img.shields.io/pypi/pyversions/wq.db.svg
:target: https://pypi.org/project/wq.db
.. |Django Support| image:: https://img.shields.io/badge/Django-1.11%2C%202.0-blue.svg
:target: https://pypi.org/project/wq.db

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

wq.db-1.1.0.tar.gz (27.2 kB view details)

Uploaded Source

File details

Details for the file wq.db-1.1.0.tar.gz.

File metadata

  • Download URL: wq.db-1.1.0.tar.gz
  • Upload date:
  • Size: 27.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for wq.db-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e65f16b62c821b01e6931215e3a01a2b45e61f5d015c3ef3c84e2022d148d7a6
MD5 08ce92c9ea325a7569e4d6b0946df30b
BLAKE2b-256 61b34f8ebcdbd49ab4d8a4149a7168a2a70a158cd98b28c943757ce66153b4c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page