반응형
[Django] Ajax로 다차원 배열, Json안에 Json 등 중첩된 구조의 데이터 전송하는 방법
AJAX로 Django 서버로 데이터를 전송 할 때, 다음과 같이 중첩된 구조의 데이터(multidimensional array, json, 등)을(를) 전송하는 경우, View에서 데이터를 갖고 오는 방법이다.
# 예시 데이터
{
data: "트리",
tasks: {
name1: [0, 'aaa'],
name2: [1, 'bbb']
}
}
1. getlist
또는 get
이용하기
위 데이터를 views.py
에서 출력해 보면 아래와 같은 구조로 출력된다.
def test_ajax_post(request):
if request.POST:
print request.POST
# --- 결과
<QueryDict: {
u'data': [u'트리'],
u'tasks[name1][]': [u'0', u'aaa'],
u'tasks[name2][]': [u'1', u'bbb']
}>
request.POST.getlist('tasks[name1][]')
(으)로 리스트를 갖고 올 수 있다.
- 위 예시는 값이 리스트 이기 때문에 getlist를 이용했으며, 만약, 값이 문자열인 경우 get을 사용하면 된다.
2. querystring-parser
이용하기
querystring-parser
는 데이터를 dictionary형태로 parsing 해주는 모듈이다.
사용 방법
- querystring-parser 모듈을 설치해 준다.
$ pip install querystring_parser
- querystring-parser를 views.py에 적용한다.
from querystring_parser import parser
def test_ajax_post(request):
if request.POST:
post_dict = parser.parse(request.POST.urlencode())
print post_dict
# --- 결과
<QueryDict: {
u'data': [u'트리'],
u'tasks': {
u'name1': {u'': [0, u'aaa'],
u'name2': {u'': [1, u'bbb']
}
}>
반응형
'Python > Django' 카테고리의 다른 글
[Django] FileField/ImageField 파일 생성시 Overwrite하는 방법 (0) | 2019.08.19 |
---|---|
[Django] django_mysql Warnings 해결 방법 (0) | 2019.08.16 |
[Django] npm으로 설치한 패키지 사용하는 방법(node_modules) (3) | 2019.08.14 |
[Django] SCSS/SASS 사용하는 방법 (0) | 2019.08.14 |
[Django][fancytree] ajax로 서버에서 데이터 불러오기 (0) | 2019.08.06 |