Django Ajax 통신하기
Created: 2018 02 05
조건
- 넘길 값을 json 형태로 보낸다
- csrftoken 기능도 사용한다
- return 형태는 json 형태로 리턴한다
ajaxtest.html
// Ajax를 쓰기 위해 html 에서 jquery를 로드한다
<script src="js/jquery-2.2.3.min.js" />
// 보낼 데이터
jsonObj = {}
jsonObj['Key1'] = $('#Key1').val();
jsonObj['Key2'] = $('#Key2').val();
// ajax 부분
$.ajax({
method: "POST",
dataType : "json",
url: "{% url 'ajaxtest:ajaxtest_def' %}",
data: { "jsonData" : JSON.stringify(jsonObj), "csrfmiddlewaretoken" : "{{ csrf_token }}" },
// csrf token 을 함께 보낸다
}).done(function( msg ) {
// 결과값 콘솔에 표시
console.log(msg);
});
ajaxtest\urls.py
urlpatterns = [
path('ajaxtest', ajaxtest_def , name = 'ajaxtest')
]
ajaxtest\views.py
from django.views.decorators.http import require_POST
from django.http import JsonResponse
import json
# 포스트 형태만 받는다
@require_POST
def ajaxtest_def(request):
json_data = json.loads(request.POST['jsonData'])
###
# 처리할 로직 부분
###
return_data = {'result': 'success'}
return JsonResponse(return_data)