簡體   English   中英

如何在Django中的render()之后將參數傳遞給url?

[英]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 routingrender()時,我猜測基礎是www.mydomain.com/results被路由到views.results調用,該調用renders results.html views.results renders results.htmlwww.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM