通过jqueryajax查询对象

2024-04-19 07:07:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉jquery,我正在使用Django创建一个项目。现在我正在尝试创建一个搜索函数。我要做的是在不加载页面的情况下显示用户输入的特定单词的条目。在

我不知道这个页面在使用什么,但我想创建的基本上就是这个页面。在

https://simpleisbetterthancomplex.com/search/

但我还不明白如何将ajax应用到Django中,有谁能给我举个例子和技巧吗?在


Tags: 项目django函数用户httpscomsearch情况
1条回答
网友
1楼 · 发布于 2024-04-19 07:07:56

正如皮索尔已经提到的,上一门课肯定是有用的。 但是,您需要的是:

在jbase中定义第一个链接。 假设您的搜索如下所示:

<form id="search" method="get" action=""> 
    <input type="text" id="id_q" name="q"/>
    <button type="submit">Search</button>
</form>

现在您需要获取表单中输入的数据。将此文件放入已在基本模板中链接的JS文件中:

^{pr2}$

请注意,这是一个基本的ajaxget请求,您可以使用它作为搜索的基础。发送给Django的data如下所示:{'q': 'Whatever you're searching for'}。 在Django视图中,可以从请求中获取q:

# Imports
from Django.http import JsonResponse

def search_func(request):
    if request.GET.get('q'):
        q = request.GET.get('q')
        model = YourModel.objects.filter(name__icontains=q)
        return JsonResponse(data={'results': model})
    else:
        # Handle empty queries

JSON响应返回一个序列化字典,它看起来像您传递给JsonResponse的data属性的dict。在上面定义的jQuery函数中,您可以访问AJAX函数的success键中的'results',如下所示:

$("#id_q").change(function () {
$.ajax({
    url: "/search/",   //Replace this with your search URL
    type: "get",       // Querying means getting in HTTP terms
    data: $("#search").serialize(),    // This transforms your search form into a JSON dictionary.
    success: function (data){
        example = data.results // That's where you get your query results.
        // Handle your results
    }, // Do sth here.
    error: function (xHR, textStatus) {...} // Handle server-side errors here.
  });
})

希望对你有点帮助。在

相关问题 更多 >