Powerful and easy AJAX framework for django applications.
Project description
Fast and easy AJAX libraries for django applications.
Requirements
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 its advantages!
Usage
@ajax Decorator
from django_ajax.decorators import ajax
@ajax
def my_view(request):
do_something()
When nothing is returned as result of view then returns (JSON format):
{"status": 200, "statusText": "OK", "content ": null}
Sending custom data in the response
@ajax
def my_view(request):
c = 2 + 3
return {'result': c}
The result is send to the browser in the following way (JSON format)
{"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 JSON response:
{"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 use AJAX quite frequently in your project, we suggest using the AJAXMiddleware described below.
Add django_ajax.middleware.AJAXMiddleware into the MIDDLEWARE_CLASSES list in settings.py.
All your responses will be converted to JSON if the request was made by AJAX, otherwise is return a HttpResponse.
AJAXMixin for class-based views
AJAXMixin is an object that calls the 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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.