Javascript 到 Django views.py?

标签 javascript python django

这听起来很简单,但是如何将 index.html 模板中的 Javascript 数组中的数据发送到 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 中有一组复选框值,这些值是在用户按下“推荐”后计算的。我想将它发送到我的索引 View 并将其用作另一个函数的参数。

所以:

def index(request):
    if(request.GET.get('Recommend')):
        sql_handler.recommend()
        context['name'] = sql_handler.name
        //something??
        tags = check_array_javascript
        context['tags'] = tags
        return render(request, 'polls/index.html', context)

我该怎么做?我一直在寻找类似的问题,但我对 Django 和一般的 Web 开发还不熟悉,所以我要么不理解答案,要么他们没有帮助我。

最佳答案

好吧,为了从客户端 (JavaScript) 向后端(您的 Django 应用程序)发送数据,您需要使用一种叫做 Ajax 的东西,它代表异步 JavaScript 和 XML。 基本上,它的作用是允许您与后端服务通信而无需重新加载页面,而您必须使用普通的 POST 或 PUT 表单提交来完成。

最简单的实现是使用 jQuery . jQuery 首先是一个 DOM 操作库,但自从它诞生以来,已经发展到包含的内容远不止于此。

A jQuery ajax call看起来像这样。

$(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");
        }
    });
});

这可以在您的 views.py

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

关于Javascript 到 Django views.py?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855631/

相关文章:

javascript - 未处理的 promise 拒绝 - 关键路径不完整

python - Django 静态文件服务与 React Router 冲突

DjangoRestFramework - 如何检查 valied_data 中是否存在可选的序列化程序字段?

javascript - WebSocket.onmessage 不起作用

javascript - toggleClass 以显示隐藏的 div - 添加动画和窗口滚动?

javascript - 是否可以在使用电子商务扩展时将自定义变量发送到 Google Analytics

javascript - 选择具有给定 id 的元素的更快方法

python - Django 内联表单集将始终创建新对象而不是更新它们

python - 为什么 protobuf 不适合大型数据结构?

python - 在django项目中嵌入音乐播放器