Pustaka AJAX yang cepat dan mudah untuk aplikasi Django.
3.x
2.x
Instal Django-ajax di lingkungan python Anda
1- Unduh dan instal paket:
$ pip install djangoajax
Melalui Github:
pip install -e git://github.com/yceruto/django-ajax#egg=djangoajax
atau cukup dengan:
$ python setup.py install
2- Tambahkan 'django_ajax'
ke dalam daftar INSTALLED_APPS
.
3- Baca bagian penggunaan dan nikmati fitur ini!
from django_ajax . decorators import ajax
@ ajax
def my_view ( request ):
do_something ()
Ketika tampilan tidak mengembalikan apa pun, Anda akan menerima respons ini (format JSON):
{ "status" : 200 , "statusText" : "OK" , "content " : null }
Mengirim konten
@ ajax
def my_view ( request ):
c = 2 + 3
return { 'result' : c }
Seluruh hasil diubah menjadi format JSON sebagai bagian dari elemen konten:
{ "status" : 200 , "statusText" : "OK" , "content" : { "result" : 5 } }
Menggabungkan dengan dekorator lain
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 }
Lokasi atau jalur respons pengalihan akan diberikan dalam item konten, juga status dan statusText akan mencerminkan apa yang sedang terjadi:
{ "status" : 302 , "statusText" : "FOUND" , "content" : "/login" }
Respon templat
from django . shortcuts import render
from django_ajax . decorators import ajax
@ ajax
def my_view ( request ):
return render ( request , 'home.html' )
Respons JSON:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
Tangkap pengecualian
@ ajax
def my_view ( request ):
a = 23 / 0 # this line throws an exception
return a
Respons JSON:
{ "status" : 500 , "statusText" : "INTERNAL SERVER ERROR" , "content" : "integer division or modulo by zero" }
Jika Anda selalu menggunakan AJAX dalam proyek Anda, kami sarankan Anda mengaktifkan AJAXMiddleware yang dijelaskan di bawah.
Tambahkan django_ajax.middleware.AJAXMiddleware
ke daftar MIDDLEWARE_CLASSES
di settings.py
dan semua tanggapan Anda akan dikonversi ke JSON sedangkan permintaan dibuat melalui AJAX, jika tidak maka akan mengembalikan HttpResponse normal.
Peringatan!
Jika middleware ini diaktifkan Anda tidak dapat menggunakan dekorator @ajax
. Itu akan menyebabkan konversi JSON ganda.
AJAXMixin
adalah objek yang memanggil dekorator AJAX.
from django . views . generic import TemplateView
from django_ajax . mixin import AJAXMixin
class SimpleView ( AJAXMixin , TemplateView ):
template_name = 'home.html'
Respons JSON:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
Nikmati Dan Bagikan!