Ajax GET / POST Django,不确定如何处理数据

时间:2017-05-03 09:47:56

标签: jquery ajax django

我试图用AJAX在页面上执行查询。后端正在使用Django。我的javascript就像这样:

$(function(){
    $("#form").submit(function(event){
        event.preventDefault();
        var query = ($("#input-field").val());
        $.ajax({
            type: "GET",
            url:"{% url 'search_building' %}",
            data: {
                'csrfmiddlewaretoken': '{{ csrf_token }}',
                'q': query
            },
            success: function(data) {
                $("#search-results").html(data);
            }
        });
    });
});

整个页面都会出现并附加#search-results,因为我只希望从表格中获得结果。

我对使用Ajax是否应该使用GET或POST以及是否应该使用csrf令牌感到有点困惑。

非常感谢。

我明白了!

我的原始网页使用了一个视图,一个网址和一个返回查询所有结果的模板

我想使用Django的模板语言,所以我不希望输出在json中,然后编写javascript来处理输出。

所以我创建了第二个模板来渲染我的结果,一个处理查询的视图,然后使用ajax处理将查询发送到新视图并将结果从新模板渲染到旧模板。

1 个答案:

答案 0 :(得分:0)

尝试以json格式从后端返回响应。 这样可以很容易地使用响应数据,您可以随意使用它。

整页加载背后的原因是因为您正在使用上下文渲染模板。

对于ajax请求,json格式的响应更适合数据处理。

此外,如果您希望写入数据库,例如新实例,请使用POST请求。 相反,您需要的是为某些查询调用api,或者您希望api提供数据的情况,您可以使用GET请求。

这是我所学到的所有版本。 希望你得到你所要求的。!