为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Django Web 应用程序中处理数据库的实时搜索?

如何在 Django Web 应用程序中处理数据库的实时搜索?

紫衣仙女 2021-06-29 13:06:18
我想构建一个 Web 应用程序,将用户带到带有搜索栏的网页,并且每次击键时,搜索结果都应显示在搜索栏下方。到目前为止,我所做的是设置一些 javascript 代码来在每次击键时隐藏和显示 HTML 列表元素,但这并不是完全搜索数据库。我想我可以在 HTML 代码中列出整个数据库(大约 500 个对象并且还在增长),然后用 Javascript 过滤它,但我觉得这效率低下?我的一些想法可能会奏效: 1)我刚刚在上面描述的内容。以 HTML 格式列出整个数据库并使用 javascript 进行过滤。2)Algolia 还是elasticsearch 搜索框架?我尝试与这两个一起工作,但似乎无法让它们工作。在你看来,我应该怎么做?我是 Web 开发的新手,我不确定最好的方法是什么。感谢您的任何帮助!
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

大多数(或许多)人这样做的方式是在前端使用自动完成(如jQuery)和一个端点来查询数据库。


  $( "#search_input" ).autocomplete({source: "/search_view"});

并/search_view会转到返回 JSON 的视图。也许是这样的。


def search_view(request):

    term = request.GET.get('term')

    data = []

    if term:

        items = Item.objects.filter(value__icontains=term).values('value', 'id')

        data = json.dumps(items)  


    return HttpResponse(data, content_type='application/json')  

还有很多其他事情可以做,这只是一个简单的例子。


查看完整回答
反对 回复 2021-07-01
  • 1 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号