Skip to main content

Powerful and easy AJAX framework for django applications.

Project description

Fast and easy AJAX libraries for django applications.

Master Build Status PYPI Package PYPI Status PYPI License

Requirements

3.x

2.x

Installation

Install django-ajax in your python environment

1- Download and install package:

$ pip install djangoajax

Through Github:

pip install -e git://github.com/yceruto/django-ajax#egg=djangoajax

or simply with:

$ python setup.py install

2- Add 'django_ajax' into the INSTALLED_APPS list.

3- Read usage section and enjoy this feature!

Usage

@ajax Decorator

from django_ajax.decorators import ajax

@ajax
def my_view(request):
    do_something()

When the view does not return anything, you will receive this response (JSON format):

{"status": 200, "statusText": "OK", "content ": null}

Sending content

@ajax
def my_view(request):
    c = 2 + 3
    return {'result': c}

The whole result is converted into a JSON format as part of the content element:

{"status": 200, "statusText": "OK", "content": {"result": 5}}

Combining with others decorators

from django.contrib.auth.decorators import login_required
from django_ajax.decorators import ajax

@ajax
@login_required
def my_view(request):
    # if the request.user is anonymous then this view not proceed
    return {'user_id': request.user.id}

The location or path of the redirection response will be given in the content item, also the status and statusText will reflect what is going on:

{"status": 302, "statusText": "FOUND", "content": "/login"}

Template response

from django.shortcuts import render
from django_ajax.decorators import ajax

@ajax
def my_view(request):
    return render(request, 'home.html')

The JSON response:

{"status": 200, "statusText": "OK", "content": "<html>...</html>"}

Catch exceptions

@ajax
def my_view(request):
    a = 23 / 0  # this line throws an exception
    return a

The JSON response:

{"status": 500, "statusText": "INTERNAL SERVER ERROR", "content": "integer division or modulo by zero"}

AJAXMiddleware

If you are using AJAX at all times in your project, we suggest you activate the AJAXMiddleware described below.

Add django_ajax.middleware.AJAXMiddleware to the MIDDLEWARE_CLASSES list in settings.py and all your responses will be converted to JSON whereas the request was made via AJAX, otherwise it will return a normal HttpResponse.

AJAXMixin for class-based views

AJAXMixin is an object that call to AJAX decorator.

from django.views.generic import TemplateView
from django_ajax.mixin import AJAXMixin

class SimpleView(AJAXMixin, TemplateView):
    template_name = 'home.html'

The JSON response:

{"status": 200, "statusText": "OK", "content": "<html>...</html>"}

Enjoy And Share!

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

djangoajax-3.3.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

djangoajax-3.3-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file djangoajax-3.3.tar.gz.

File metadata

  • Download URL: djangoajax-3.3.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.10

File hashes

Hashes for djangoajax-3.3.tar.gz
Algorithm Hash digest
SHA256 85d76a01a81fb999ecd3fe7c216946bd331600d80c2694ad63972b49f4043ea4
MD5 36a44ab9829d1e30f30296bc767ed696
BLAKE2b-256 71c51356ec349740b398ef04834e3b08edd65e62544cbe07c2d3094a7b4ece8f

See more details on using hashes here.

File details

Details for the file djangoajax-3.3-py3-none-any.whl.

File metadata

  • Download URL: djangoajax-3.3-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.10

File hashes

Hashes for djangoajax-3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6e1041d70602fc13494e696c20940007c870d5e5cbfd2cc14d91816effac1c41
MD5 9435f284a0e7e0813203db631f8c2397
BLAKE2b-256 6ed027a6110be4c57e2f19d4ab7ec8ebf325c28be8d5a00ce7c83170b23c248f

See more details on using hashes here.

Supported by

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