New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

djangoajax

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

djangoajax

Powerful and easy AJAX framework for django applications.

  • 3.3
  • PyPI
  • Socket score

Maintainers
1

=========== django-ajax

Fast and easy AJAX libraries for django applications.

.. image:: https://api.travis-ci.com/yceruto/django-ajax.svg?branch=master :alt: Master Build Status :target: https://travis-ci.com/github/yceruto/django-ajax

.. image:: https://img.shields.io/pypi/v/djangoajax.svg :alt: PYPI Package :target: https://pypi.python.org/pypi/djangoajax

.. image:: https://img.shields.io/pypi/status/django-ajax.svg :alt: PYPI Status :target: https://pypi.python.org/pypi/djangoajax

.. image:: https://img.shields.io/pypi/l/djangoajax.svg :alt: PYPI License :target: https://pypi.python.org/pypi/djangoajax

Requirements

3.x

  • python_ >=3.5
  • django_ >=2.0

2.x

  • python_ >=2.7
  • django_ >=1.7,<2.0

.. _python: http://www.python.org/ .. _django: https://djangoproject.com .. _jQuery: http://jquery.com

Installation

Install django-ajax in your python environment

1- Download and install package:

.. code:: sh

$ pip install djangoajax

Through Github:

.. code:: sh

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

or simply with:

.. code:: sh

$ python setup.py install

2- Add 'django_ajax' into the INSTALLED_APPS list.

3- Read usage section and enjoy this feature!

Usage

@ajax Decorator


.. code:: python

    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):

.. code:: javascript

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


**Sending content**

.. code:: python

    @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:

.. code:: javascript

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


**Combining with others decorators**

.. code:: python

    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:

.. code:: javascript

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


**Template response**

.. code:: python

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

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

The JSON response:

.. code:: javascript

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


**Catch exceptions**

.. code:: python

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

The JSON response:

.. code:: javascript

    {"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.

.. caution:: If this middleware is activated you cannot use the ``@ajax`` decorator. That will cause double JSON conversion.


AJAXMixin for class-based views

AJAXMixin is an object that call to AJAX decorator.

.. code:: python

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

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

The JSON response:

.. code:: javascript

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

Enjoy And Share!

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc