如何将值从 javascript 函数传递到 django 视图

Posted

技术标签:

【中文标题】如何将值从 javascript 函数传递到 django 视图【英文标题】:How to pass value from javascript function to django view 【发布时间】:2013-10-29 15:45:19 【问题描述】:

我的问题是,将值从 javascript 函数传递到 django 视图的更好方法是什么。

我有一个模板,我通过一个 javascript 函数获取一个值,我想将该值传递给 django 视图。

【问题讨论】:

【参考方案1】:

这个问题很笼统,但这里有一种方法。您可以使用 jQuery 进行 AJAX 调用,如下所示:

        $.ajax(type: 'POST',
                url: '/fetch_data/',                            // some data url
                data: param: 'hello', another_param: 5,       // some params  
                success: function (response)                   // callback
                    if (response.result === 'OK') 
                        if (response.data && typeof(response.data) === 'object') 
                            // do something with the successful response.data
                            // e.g. response.data can be a JSON object
                        
                     else 
                        // handle an unsuccessful response
                    
                
               );

你的 Django 视图会是这样的:

def fetch_data(request):
    if request.is_ajax():
        # extract your params (also, remember to validate them)
        param = request.POST.get('param', None)
        another_param = request.POST.get('another param', None)

        # construct your JSON response by calling a data method from elsewhere
        items, summary = build_my_response(param, another_param)

        return JsonResponse('result': 'OK', 'data': 'items': items, 'summary': summary)
    return HttpResponseBadRequest()

这里很多细节明显省略了,但你可以以此为指导。

【讨论】:

【参考方案2】:

这里有两种方式:

    Ajax 请求到您的视图 将用户重定向到您的值为查询参数的新 URL

【讨论】:

你有任何使用ajax的例子吗?我是新人 @Jmint:这超出了这个问题的范围(老实说,这个网站)。如果您熟悉 jquery,请从 sitepoint.com/ajax-jquery 开始学习 jquery AJAX。 Google 将帮助您找到使用 vanilla javascript 的 AJAX 教程

以上是关于如何将值从 javascript 函数传递到 django 视图的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从 javascript 传递到 iOS UIWebView

如何将值从 javascript 传递到嵌入式 flex 对象?

如何使用 JavaScript 将值从一个 HTML 页面传递到另一个页面?

如何将值从模板传递到 ts 函数

如何将值从javascript变量传递给剃刀变量?

如何将值从谷歌云函数(firebase)传递到前端?