紫衣仙女
2021-06-29 13:06:18
我想構(gòu)建一個 Web 應(yīng)用程序,將用戶帶到帶有搜索欄的網(wǎng)頁,并且每次擊鍵時,搜索結(jié)果都應(yīng)顯示在搜索欄下方。到目前為止,我所做的是設(shè)置一些 javascript 代碼來在每次擊鍵時隱藏和顯示 HTML 列表元素,但這并不是完全搜索數(shù)據(jù)庫。我想我可以在 HTML 代碼中列出整個數(shù)據(jù)庫(大約 500 個對象并且還在增長),然后用 Javascript 過濾它,但我覺得這效率低下?我的一些想法可能會奏效: 1)我剛剛在上面描述的內(nèi)容。以 HTML 格式列出整個數(shù)據(jù)庫并使用 javascript 進(jìn)行過濾。2)Algolia 還是elasticsearch 搜索框架?我嘗試與這兩個一起工作,但似乎無法讓它們工作。在你看來,我應(yīng)該怎么做?我是 Web 開發(fā)的新手,我不確定最好的方法是什么。感謝您的任何幫助!
1 回答

慕桂英546537
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個贊
大多數(shù)(或許多)人這樣做的方式是在前端使用自動完成(如jQuery)和一個端點(diǎn)來查詢數(shù)據(jù)庫。
$( "#search_input" ).autocomplete({source: "/search_view"});
并/search_view會轉(zhuǎn)到返回 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')
還有很多其他事情可以做,這只是一個簡單的例子。
添加回答
舉報(bào)
0/150
提交
取消