2017-11-10 6 views
0

Google's Custom Search Engine製品を使用して、パーソナルWebアプリケーション用のページのクエリの結果を表示しようとしています。Djangoでrender()の後にURLにパラメータを渡すには?

どのようにCSEが動作しているかは、URLから検索用語としてパラメータを取ることです。すなわち、www.mydomain.com/results.html?q=hello+worldはページ上で「hello world」クエリの結果を返します。彼らはあなたのページにあなたに与えるコードをJSと書いてありますので、少しブラックボックスです。

しかし、DjangoURLroutingrender()で、私は基本を推測していることはwww.mydomain.com/resultswww.mydomain.com/resultsとしてrenders results.htmlviews.results呼び出しにルーティングされるということです。

www.mydomain.com/resultsにリダイレクトする代わりにwww.mydomain.com/results.html?q=hello+worldにクエリを送信し、Djangoを返す代わりに、結果/ htmlファイルをレンダリングするベストプラクティスは何ですか?

申し訳ありませんが、私は比較的新しいです。私は物事をまとめることを試みることができますが、私はこの状況を処理する非常に効率的な方法でなければならないと感じています。ご理解いただきありがとうございます

+0

は、いくつかのコードの弟を表示します – babygame0ver

答えて

0

これを完全に熟考しています。フォームはGETを介して結果ビューに送信され、ビューはrequest.GET["q"]から検索クエリを取得します。または、検索を行い、その結果をテンプレートに渡します。

0

回答ありがとうございますが、それがうまくいくかどうかはわかりません。

まず、GoogleのCSE JSコードは次のようになります。

<div class="container"> 
    <gcse:searchresults-only></gcse:searchresults-only> 
    </div> 

私はそれがrequest.GET [ "Q"]メソッドを使用している場合はわかりません。

第2に、フォームが送信するもの以外のものを追加して「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 
関連する問題