django-drfxios

A Django app to simplify communication between frontend and Django Rest Framework


Keywords
api, api-wrapper, axios, crud, django, django-rest-framework, javascript, python
License
BSD-3-Clause
Install
pip install django-drfxios==0.2

Documentation

DrfXios

DrfXios simplifies communication between frontend and Django Rest Framework API.

Quick start

>>> pip install django-drfxios

settings.INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'drfxios',
    ...
]

settings.py

DRFXIOS_ROUTER_PATH = "<dotted.path.to.router>" # eg "api.urls.router"

context_processors

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'drfxios.context_processors.drfxios',
                ...
            ],
        },
    },
]

base.html

<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.js"></script>
<script src="https://cdn.jsdelivr.net/npm/url-join@4.0.1/lib/url-join.min.js"></script>
<script src="{% static "drfxios/drfxios.js" %}"></script>

<script>
    dx = new DrfXios('api', {{ DRFXIOS.MODEL_LIST|safe }})
</script>

And you're ready tu use DrfXios in your templates.

Example:

dx.getModel(<pk>)
dx.createModel(<data:obj>)
dx.deleteModel(<pk>)
dx.getModelList(<filter:obj>)
dx.updateModel(<data:obj>)
dx.patchModel(<data:obj>)

All methods return JavaScript promises so you can use .then, .catch and .finally methods.