1

我正在尝试向我的views.py 发送一个ajax 请求,但我不知道如何使用该路径。我的视图位于我的服务器上/home/pycode/main/main/apps/builder/views.py. 我发送请求的页面位于/home/dbs/www/python.html 我需要在我的 urls.py 中添加一些内容吗?

视图.py

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

python.html jquery ajax

<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>
4

3 回答 3

5

要访问视图中的函数,您可以通过它们的条目来引用它们,而urls.py不是通过它们在文件系统中的位置来引用它们。

浏览 django 教程(4 页)将有很大帮助。

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

在 urls.py 中,您使用类似于以下内容的条目将 url 映射到函数:

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

然后,每当您键入 '/main/` 作为 url 时,它都会映射到您的视图函数。

于 2012-06-12T18:44:23.183 回答
2

就服务器而言,Ajax 请求与任何其他请求一样。所以,是的,你需要 urls.py 中的一些东西。

于 2012-06-12T18:47:47.877 回答
0

对于 ajax 请求,您可以使用 json 响应:

# -*- 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'
于 2012-06-12T20:05:45.773 回答