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。