跳转到主要内容

Flask扩展,用于提供查询webteam的Google自定义搜索账户的搜索视图

项目描述

canonicalwebteam.search

circleci build status Code coverage PyPI version

Flask扩展,用于提供查询webteam的Google自定义搜索账户的搜索视图。

安装

pip3安装canonicalwebteam.search

或将canonicalwebteam.search添加到您的requirements.txt文件中。

使用

需求

如果您使用Flask-Base,您需要使用至少2.0.0版本。如果您不是,您至少需要Flask@2.3.0

本地开发

对于本地开发,最好使用我们的一些网站项目(如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
    )
)

Publish

模板

您需要在指定的template_path处创建一个HTML模板。默认情况下,这将是您的模板文件夹中的search.html。此模板将传递以下数据

  • {{ query }} - q=搜索查询参数的内容
  • {{ start }} - start=查询参数的内容 - 返回结果的起始偏移量(用于分页 - 默认为0)
  • {{ num }} - num=查询参数的内容 - 返回的搜索结果数量(默认10个)
  • {{ results }} - 来自Google自定义搜索查询的结果。实际的搜索结果位于{{ results.entries }}中。

API密钥

您需要在服务器启动时提供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自定义搜索引擎的网站列表中。如果您在此页面上看不到任何网站,请联系Web团队。

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

canonicalwebteam_search-2.1.1.tar.gz (14.1 kB 查看哈希)

上传时间

构建分发

canonicalwebteam.search-2.1.1-py3-none-any.whl (16.0 kB 查看哈希)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面