Flask Extension webteamのGoogleカスタム検索アカウントをクエリするための検索ビューを提供します。
pip3 install canonicalwebteam.search
または、 canonicalwebteam.search requirements.txt追加します。
フラスコベースを使用している場合は、少なくとも2.0.0を使用する必要があります。そうでない場合は、少なくとも[email protected]が必要になります。
ローカル開発のために、ubuntu.comのようなウェブサイトプロジェクトの1つでこのモジュールをテストするのが最善です。詳細については、このガイド(内部のみ)をフォローしてください。
次のように、プロジェクトのアプリケーションに拡張機能を追加できます。
import talisker . requests
from flask import Flask
from canonicalwebteam . search import build_search_view
app = Flask ( "myapp" ) # You must provide app
session = talisker . requests . get_session () # You must provide a requests session
app . add_url_rule ( "/search" , "search" , build_search_view ( app , session ))
# Or, a bit more complex example
app . add_url_rule (
"/docs/search" ,
"docs-search" ,
build_search_view (
app = app # required in version 1.4.0 onwards
session = session ,
site = "maas.io/docs" ,
template_path = "docs/search.html" ,
search_engine_id = "xxxxxxxxxx" , # Optional argument, required by some of our sites
request_limit = "500/day" , # Allows your to configure the limit at which the user will be forbidden to query more. If omitted defaults to 2/second, 100/minute, 2000/day
)
)
特定のtemplate_pathでHTMLテンプレートを作成する必要があります。デフォルトでは、これはTemplatesフォルダー内のsearch.htmlになります。このテンプレートは、次のデータに渡されます。
{{ query }} - q=検索クエリパラメーターの内容{{ start }} - start= queryパラメーターの内容 - 結果の返却を開始するオフセット(ページネーションに使用 - デフォルト0){{ num }} - num= queryパラメーターの内容 - 返す検索結果の数(デフォルト10){{ results }} - 結果は、Googleカスタム検索クエリから返されました。実際の検索結果は{{ results.entries }}にあります。次に、サーバーが起動するときにSEARCH_API_KEYと呼ばれる環境変数としてGoogleカスタム検索APIのAPIキーを提供する必要があります - 例:
SEARCH_API_KEY=xxxxx FLASK_APP=app.py flask run
これsearch.html完了したら、サイトにアクセス/search?q={some_query}
一部のサイトでは、特定の検索エンジンID(CX)をカスタム検索エンジンページに表示するbuild_search_viewに渡す必要があります。
新しいサイトを作成し、APIが結果を返していない場合は、サイトのGoogleカスタム検索エンジンリストに追加する必要がある場合があります。このページにサイトが表示されない場合は、webteamに尋ねてください。