跳转到主要内容

Flask扩展,用于将常用配置应用到webteam的所有Flask应用程序中。

项目描述

Canonical Webteam Flask-Base

Flask扩展,用于将常用配置应用到webteam的所有Flask应用程序中。

使用方法

from canonicalwebteam.flask_base.app import FlaskBase

app = FlaskBase(__name__, "app.name")

from canonicalwebteam.flask_base.app import FlaskBase

app = FlaskBase(
    __name__,
    "app.name",
    template_404="404.html",
    template_500="500.html",
    favicon_url="/static/favicon.ico",
)

本地开发

对于本地开发,最好使用我们的一些网站项目之一,如ubuntu.com,来测试此模块。有关更多信息,请参阅此指南(仅限内部使用)

功能

ProxyFix

FlaskBase 包含 ProxyFix 以避免在重定向过程中发生 SSL 剥脱。

重定向和已删除的路径

FlaskBase 使用 yaml-responses 允许通过在网站根目录中创建 redirects.yamlpermanent-redirects.yamldeleted.yaml 来轻松配置重定向和返回已删除的响应。

错误模板

FlaskBase 可以选择使用模板生成 404500 错误响应

app = FlaskBase(
    __name__,
    "app.name",
    template_404="404.html",
    template_500="500.html",
)

这将导致例如 http://localhost/non-existent-path 返回一个包含 templates/404.html 内容的 404 状态。

重定向 /favicon.ico

FlaskBase 可以选择提供对常用查询路径 /favicon.ico/robots.txt/humans.txt 的重定向到合理的位置

from canonicalwebteam.flask_base.app import FlaskBase

app = FlaskBase(
    __name__,
    "app.name",
    template_404="404.html",
    template_500="500.html",
    favicon_url="/static/favicon.ico",
    robots_url="/static/robots.txt",
    humans_url="/static/humans.txt"
)

这将导致例如 http://localhost/favicon.ico 返回一个重定向到 http://localhost/static/favicon.ico302 状态。

清除尾部斜杠

自动清除所有路由中的尾部斜杠。

Jinja2 辅助函数

您可以从 flask-base 中使用以下两个 jinja2 辅助函数在模板中

  • now 是一个函数,它输出当前日期,格式由传递的 格式 确定 - {{ now('%Y') }} -> YYYY
  • versioned_static 是一个函数,用于指纹传递的资产 - {{ versioned_static('asset.js') }} -> static/asset?v=asset-hash

HTTP 头部

您将自动设置以下头部

  • X-Content-Type-Options: NOSNIFF
  • Permissions-Policy: interest-cohort=()
  • X-Frame-Options: SAMEORIGIN,可以使用 exclude_xframe_options_header 装饰器排除
  • Cache-Control 如果未设置 response.cache_control.* 且根据静态资产版本化(参见上面的 versioned_static

security.txtrobots.txthumans.txt

如果您在项目的根目录中创建 security.txtrobots.txthumans.txt,这些将在 /.well-known/security.txt/robots.txt/humans.txt 分别提供。

/_status/check 端点

自动添加 /_status/check 端点,该端点由内容缓存用于后端健康检查或例如由 k8s 用于检查 pod 的状态。

测试

要运行测试,请执行 SECRET_KEY=fake python3 -m unittest discover tests

项目详情


下载文件

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

源分布

canonicalwebteam_flask_base-2.0.0.tar.gz (10.9 kB 查看散列)

上传于 源码

构建版本

canonicalwebteam.flask_base-2.0.0-py3-none-any.whl (11.3 kB 查看哈希值)

上传于 Python 3

由以下支持