ไลบรารี AJAX ที่ง่ายและรวดเร็วสำหรับแอปพลิเคชัน django
3.x
2.x
ติดตั้ง django-ajax ในสภาพแวดล้อมหลามของคุณ
1- ดาวน์โหลดและติดตั้งแพ็คเกจ:
$ pip install djangoajax
ผ่าน Github:
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' )
การตอบสนอง JSON:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
จับข้อยกเว้น
@ ajax
def my_view ( request ):
a = 23 / 0 # this line throws an exception
return a
การตอบสนอง JSON:
{ "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'
การตอบสนอง JSON:
{ "status" : 200 , "statusText" : "OK" , "content" : "<html>...</html>" }
สนุกและแบ่งปัน!