مكتبات AJAX سريعة وسهلة لتطبيقات جانغو.
3.x
2.x
قم بتثبيت Django-ajax في بيئة بايثون الخاصة بك
1- تنزيل وتثبيت الحزمة:
$ pip install djangoajax
من خلال جيثب:
pip install -e git://github.com/yceruto/django-ajax#egg=djangoajax
أو ببساطة مع:
$ python setup.py install
2- أضف 'django_ajax'
إلى قائمة INSTALLED_APPS
.
3- اقرأ قسم الاستخدام واستمتع بهذه الميزة!
from django_ajax . decorators import ajax
@ ajax
def my_view ( request ):
do_something ()
عندما لا يُرجع العرض أي شيء، ستتلقى هذا الرد (بتنسيق JSON):
{ "status" : 200 , "statusText" : "OK" , "content " : null }
إرسال المحتوى
@ ajax
def my_view ( request ):
c = 2 + 3
return { 'result' : c }
يتم تحويل النتيجة بأكملها إلى تنسيق JSON كجزء من عنصر المحتوى:
{ "status" : 200 , "statusText" : "OK" , "content" : { "result" : 5 } }
الجمع مع الآخرين الديكور
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 }
سيتم تحديد موقع أو مسار استجابة إعادة التوجيه في عنصر المحتوى، كما ستعكس الحالة ونص الحالة ما يجري:
{ "status" : 302 , "statusText" : "FOUND" , "content" : "/login" }
استجابة القالب
from django . shortcuts import render
from django_ajax . decorators import ajax
@ ajax
def my_view ( request ):
return render ( request , 'home.html' )
استجابة جيسون:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
قبض على الاستثناءات
@ ajax
def my_view ( request ):
a = 23 / 0 # this line throws an exception
return a
استجابة جيسون:
{ "status" : 500 , "statusText" : "INTERNAL SERVER ERROR" , "content" : "integer division or modulo by zero" }
إذا كنت تستخدم AJAX في جميع الأوقات في مشروعك، فنقترح عليك تنشيط برنامج AJAXMiddleware الموضح أدناه.
أضف django_ajax.middleware.AJAXMiddleware
إلى قائمة MIDDLEWARE_CLASSES
في settings.py
وسيتم تحويل جميع استجاباتك إلى JSON بينما تم تقديم الطلب عبر AJAX، وإلا فسوف يُرجع HttpResponse عادي.
حذر!
إذا تم تنشيط هذه البرامج الوسيطة، فلن تتمكن من استخدام ديكور @ajax
. سيؤدي ذلك إلى تحويل JSON مزدوج.
AJAXMixin
هو كائن يستدعي مصمم ديكور AJAX.
from django . views . generic import TemplateView
from django_ajax . mixin import AJAXMixin
class SimpleView ( AJAXMixin , TemplateView ):
template_name = 'home.html'
استجابة جيسون:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
استمتع وشارك!