Powerful and easy AJAX framework for django applications.
Project description
Fast and easy AJAX libraries for django applications.
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
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.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85d76a01a81fb999ecd3fe7c216946bd331600d80c2694ad63972b49f4043ea4 |
|
MD5 | 36a44ab9829d1e30f30296bc767ed696 |
|
BLAKE2b-256 | 71c51356ec349740b398ef04834e3b08edd65e62544cbe07c2d3094a7b4ece8f |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e1041d70602fc13494e696c20940007c870d5e5cbfd2cc14d91816effac1c41 |
|
MD5 | 9435f284a0e7e0813203db631f8c2397 |
|
BLAKE2b-256 | 6ed027a6110be4c57e2f19d4ab7ec8ebf325c28be8d5a00ce7c83170b23c248f |