Schnelle und einfache AJAX-Bibliotheken für Django-Anwendungen.
3.x
2.x
Installieren Sie django-ajax in Ihrer Python-Umgebung
1- Paket herunterladen und installieren:
$ pip install djangoajax
Über Github:
pip install -e git://github.com/yceruto/django-ajax#egg=djangoajax
oder einfach mit:
$ python setup.py install
2- Fügen Sie 'django_ajax'
zur Liste INSTALLED_APPS
hinzu.
3- Lesen Sie den Abschnitt zur Nutzung und genießen Sie diese Funktion!
from django_ajax . decorators import ajax
@ ajax
def my_view ( request ):
do_something ()
Wenn die Ansicht nichts zurückgibt, erhalten Sie diese Antwort (JSON-Format):
{ "status" : 200 , "statusText" : "OK" , "content " : null }
Inhalte versenden
@ ajax
def my_view ( request ):
c = 2 + 3
return { 'result' : c }
Das gesamte Ergebnis wird als Teil des Inhaltselements in ein JSON-Format konvertiert:
{ "status" : 200 , "statusText" : "OK" , "content" : { "result" : 5 } }
Kombination mit anderen Dekorateuren
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 }
Der Ort oder Pfad der Umleitungsantwort wird im Inhaltselement angegeben, außerdem geben Status und StatusText an, was gerade passiert:
{ "status" : 302 , "statusText" : "FOUND" , "content" : "/login" }
Vorlagenantwort
from django . shortcuts import render
from django_ajax . decorators import ajax
@ ajax
def my_view ( request ):
return render ( request , 'home.html' )
Die JSON-Antwort:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
Ausnahmen abfangen
@ ajax
def my_view ( request ):
a = 23 / 0 # this line throws an exception
return a
Die JSON-Antwort:
{ "status" : 500 , "statusText" : "INTERNAL SERVER ERROR" , "content" : "integer division or modulo by zero" }
Wenn Sie in Ihrem Projekt ständig AJAX verwenden, empfehlen wir Ihnen, die unten beschriebene AJAXMiddleware zu aktivieren.
Fügen Sie django_ajax.middleware.AJAXMiddleware
zur MIDDLEWARE_CLASSES
-Liste in settings.py
hinzu und alle Ihre Antworten werden in JSON konvertiert, obwohl die Anfrage über AJAX gestellt wurde. Andernfalls wird eine normale HttpResponse zurückgegeben.
Vorsicht!
Wenn diese Middleware aktiviert ist, können Sie den @ajax
Dekorator nicht verwenden. Dies führt zu einer doppelten JSON-Konvertierung.
AJAXMixin
ist ein Objekt, das den AJAX-Dekorator aufruft.
from django . views . generic import TemplateView
from django_ajax . mixin import AJAXMixin
class SimpleView ( AJAXMixin , TemplateView ):
template_name = 'home.html'
Die JSON-Antwort:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
Genießen und teilen!