Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript到Django views.py?_Javascript_Python_Django - Fatal编程技术网

从Javascript到Django views.py?

从Javascript到Django views.py?,javascript,python,django,Javascript,Python,Django,这听起来可能很简单,但如何将index.html模板中的Javascript数组中的数据发送到my views.py 当用户单击“推荐”按钮时,我的代码调用一个函数,该函数访问我的数据库并在模板上打印一个名称 def index(request): if(request.GET.get('Recommend')): sql_handler.recFunc() context['name'] = sql_handler.name return

这听起来可能很简单,但如何将index.html模板中的Javascript数组中的数据发送到my views.py

当用户单击“推荐”按钮时,我的代码调用一个函数,该函数访问我的数据库并在模板上打印一个名称

def index(request):
    if(request.GET.get('Recommend')):
        sql_handler.recFunc()
        context['name'] = sql_handler.name
        return render(request, 'polls/index.html', context)
我有一个Javascript中的复选框值数组,这些值是在用户按下“推荐”后计算出来的。我想将其发送到我的索引视图,并将其用作另一个函数的参数

因此:


我该怎么做?我一直在寻找类似的问题,但我对Django和web开发一般来说都是新手,所以我要么不理解答案,要么他们对我没有帮助。

好吧,所以要将数据从客户端(JavaScript)发送到后端(你的Django应用程序),你需要使用一种叫做Ajax的东西,它代表异步JavaScript和XML。 基本上,它允许您与后端服务进行通信,而无需重新加载页面,这需要使用普通的POST或PUT表单提交

最简单的实现是使用。jQuery首先是一个DOM操作库,但自其诞生以来,它已经扩展到包含更多的内容

A看起来像这样

$(document).ready(function() {
    $.ajax({
        method: 'POST',
        url: '/path/to/your/view/',
        data: {'yourJavaScriptArrayKey': yourJavaScriptArray},
        success: function (data) {
             //this gets called when server returns an OK response
             alert("it worked!");
        },
        error: function (data) {
             alert("it didnt work");
        }
    });
});
然后可以在
视图.py中检查这一点

def index(request):
    if request.is_ajax():
        #do something
        request_data = request.POST
        return HttpResponse("OK")

非常感谢你的明确回答!一个问题:我的url应该包含什么?我必须做一个新的,并在URL.py中指定它,还是它与我的主页一样?是的,你应该这样做。您需要将它映射到一个视图,以便处理ajax调用。不指定URL将导致它提交到当前所在的URL,这与正常表单提交非常相似。
def index(request):
    if request.is_ajax():
        #do something
        request_data = request.POST
        return HttpResponse("OK")