2012-06-12 11 views
1

내 views.py에 아약스 요청을 보내려고하지만 경로를 사용하는 방법을 모른다. 내 의견은 내 서버의 /home/pycode/main/main/apps/builder/views.py.에 있습니다. 요청을 보내는 페이지는 /home/dbs/www/python.html에 있습니다. 내 urls.py에 뭔가를 추가해야합니까?django 간단한 아약스 요청

views.py

#!/usr/bin/env python26 
from django.http import HttpResponse 
def main(request): 
    return HttpResponse("from python with love") 

python.html JQuery와 아약스

<script language="JavaScript"> 
$(document).ready(function() { 
$("#myform").submit(function() { 

    var myCheckboxes = new Array(); 
    $("input:checked").each(function() { 
     myCheckboxes.push($(this).val()); 
    }); 
    $.ajax({ 
     type: "POST", 
     url: '/main', 
     data: { myCheckboxes:myCheckboxes }, 
     success: function(response){ 
      alert(response); 
     } 
    }); 
    return false; 
}); 
}); 
</script> 

답변

5

결코 파일 시스템에서의 위치를 ​​통해 당신이 urls.py에서 해당 항목을 통해 참조 뷰 기능에 액세스 할 수 있습니다.

django 튜토리얼 (4 페이지)을 살펴보면 대단히 도움이됩니다.

urlpatterns = patterns('', 
    (r'^main/$', 'apps.builder.views.main'), 
) 

입력 할 때마다 그런 다음 '/ 주 /'URL로는보기에 매핑 : 당신이 유사한 항목을 사용하여 함수에 URL을 매핑 urls.py에

https://docs.djangoproject.com/en/dev/topics/http/urls/

기능.

+0

좋은 답 : – Alasdair

+0

내 앱은 내 사이트에'/ home/dbs/www /'에 위치해야합니까, 아니면 서버의 어딘가에 있어야합니까? – user1442957

+0

@ user1442957 앱을 어디서나 찾을 수 있습니다. dev 서버를 사용하는 경우, 앱은 기본 포트 : 8000을 요청할 때 초기화 될 것이므로 어떤 요청이라도'localhost : 8000'이 앱을 입력 할 것입니다 – dm03514

2

Ajax 요청은 서버와 관련된 다른 요청과 같습니다. 그래, 네가 urls.py에서 뭔가가 필요해.

# -*- coding: utf-8 -*- 

from django.http import HttpResponse 
from django.utils import simplejson 

class JsonResponse(HttpResponse): 
    """ JSON response 

    """ 
    def __init__(self, content, status=None, mimetype=None): 
     """ 
      @param content: string with json, or python dict or tuple 
      @param status: Http status 
      @param mimetype: response mimetype 
     """ 
     if not isinstance(content, basestring): 
      content = simplejson.dumps(content) 
     super(JsonResponse, self).__init__(
      content=content, 
      mimetype=mimetype or 'application/json', 
      status=status 
     ) 
     self['Cache-Control'] = 'no-cache' 
     self['Pragma'] = 'no-cache' 
0

그리고 아약스 요청에 대한

, 당신은 JSON 응답을 사용할 수 있습니다. OP에 :`/ main /`에 후행 슬래시를 포함 시키면 javascript의 URL에 추가해야합니다. 그렇지 않으면 문제가 발생할 수 있습니다.