[英]How to pass parameters into url after render() in Django?
我正在嘗試使用Google's Custom Search Engine
產品在個人Web應用程序頁面上顯示查詢結果。
CSE
的工作方式是將URL中的參數作為搜索詞:即www.mydomain.com/results.html?q=hello+world
將返回頁面上“ hello world”查詢的結果。 您在頁面上放置了一些它們給您的JS
代碼,因此有點黑框。
但是,在Django
上使用URL
routing
和render()
時,我猜測基礎是www.mydomain.com/results
被路由到views.results
調用,該調用renders results.html
views.results
renders results.html
為www.mydomain.com/results
。
通過表單提交查詢並將其傳遞到www.mydomain.com/results.html?q=hello+world
的最佳做法是什么,而不是重定向到www.mydomain.com/results
並讓Django
呈現結果/ html文件?
抱歉,我比較新。 我可以嘗試將事情拼湊在一起,但是我覺得必須有一種非常有效的方式來處理這種情況。 感謝您的理解
您完全沒有考慮這一點。 這與其他任何請求都沒有什么不同:表單通過GET提交到結果視圖,該視圖從request.GET["q"]
或任何地方獲取搜索查詢,進行搜索並將結果傳遞給模板。
感謝您的答復,但我不確定是否可以。
首先,Google CSE JS代碼如下所示:
<div class="container">
<gcse:searchresults-only></gcse:searchresults-only>
</div>
我不確定它是否使用request.GET [“ q”]方法。
其次,我想用表格發送之外的其他東西來處理“ q”參數。 那有意義嗎?
我希望工作流像這樣:
query = {'keywords':request.GET.get('k'),
'urls':request.GET.get('u'),
'collections':request.GET.getlist('c'),
'filetypes':request.GET.getlist('f')
}
query_final = create_query(query) # Some other function
return render(request,'app_search/results.html') # Need to go to domain.com/results.html?q=blahblahblah
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.