canonicalwebteam.search
1.0.0
燒瓶擴展名提供了查詢WebTeam的Google自定義搜索帳戶的搜索視圖。
pip3 install canonicalwebteam.search
或添加canonicalwebteam.search符合您的requirements.txt 。
如果您使用的是燒瓶料,則需要使用至少2.0.0。如果不是,您將需要至少[email protected]。
對於本地開發,最好使用Ubuntu.com等網站項目之一測試該模塊。有關更多信息,請遵循本指南(僅內部)。
您可以在項目的應用程序上添加擴展名,如下所示:
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模板。默認情況下,這將是模板文件夾中的search.html 。該模板將傳遞以下數據:
{{ query }} - q=搜索查詢參數的內容{{ start }} - start=查詢參數的內容 - 開始返回結果的偏移(用於分頁 - 默認為0){{ num }} - num=查詢參數的內容 - 要返回的搜索結果數(默認10){{ results }} - 從Google自定義搜索查詢中返回的結果。實際的搜索結果在{{ results.entries }}中。然後,您需要為Google自定義搜索API提供API鍵,作為服務器啟動時稱為SEARCH_API_KEY的環境變量 - 例如:
SEARCH_API_KEY=xxxxx FLASK_APP=app.py flask run
完成此操作後,您應該能夠訪問/search?q={some_query} ,並查看使用您的search.html模板構建的搜索結果。
對於某些站點,您需要將特定的搜索引擎ID(CX)傳遞到build_search_view ,您將在“自定義搜索引擎”頁面中找到。
如果您創建了一個新站點,並且API未返回任何結果,則可能需要將其添加到Google自定義搜索引擎網站列表中。如果您在此頁面中沒有看到任何網站,請詢問WebTeam。