将通用配置应用于WebTeam的所有烧瓶应用程序的烧瓶扩展。
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等网站项目之一测试该模块。有关更多信息,请遵循本指南(仅内部)。
玻璃库包括避免SSL剥离重定向的froxyfix。
FlaskBase使用YAML-RESOPONS,通过创建redirects.yaml , permanent-redirects.yaml和deleted.yaml 。
FlaskBase可以选择使用模板生成404和500错误响应:
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
)这将导致EG http://localhost/non-existent-path返回404状态,具有templates/404.html的内容。
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返回302重定向到http://localhost/static/favicon.ico 。
自动从所有路线上清除所有落后斜线。
您可以从烧瓶底座中获得两个Jinja2帮助者,可以在模板中使用:
now是以传递格式输出当前日期的函数 - {{ now('%Y') }} - > YYYYversioned_static是一个指纹的函数 - {{ versioned_static('asset.js') }} - > static/asset?v=asset-hash您会自动设置以下标题:
X-Content-Type-Options: NOSNIFFPermissions-Policy: interest-cohort=()X-Frame-Options: SAMEORIGIN ,可以用exclude_xframe_options_header Decorator排除Cache-Control versioned_static response.cache_control.*security.txt , robots.txt和humans.txt如果您在项目的根部创建security.txt , robots.txt或humans.txt ,则将分别在/.well-known/security.txt , /robots.txt和/humans.txt上提供这些security.txt。
/_status/check端点自动添加/_status/check ENDPOINT,该端点被内容计算机用于后端健康检查或K8S用于检查POD的状态。
要运行测试执行SECRET_KEY=fake python3 -m unittest discover tests 。