我想构建一个 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')
还有很多其他事情可以做,这只是一个简单的例子。
添加回答
举报
0/150
提交
取消
