Extensión de frasco que aplica configuraciones comunes a todas las aplicaciones Flask de WebTeam.
from canonicalwebteam . flask_base . app import FlaskBase
app = FlaskBase ( __name__ , "app.name" )O:
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" ,
)Para el desarrollo local, es mejor probar este módulo con uno de nuestros proyectos de sitios web como Ubuntu.com. Para obtener más información, siga esta guía (solo interna).
FlaskBase incluye proxyfix para evitar el despojo de SSL en redireccionamientos.
Flaskbase utiliza respuestas YAML para permitir una configuración fácil de redireccionamientos y retorno de respuestas eliminadas, creando redirects.yaml . Yaml, permanent-redirects.yaml y deleted.yaml en el directorio raíz del sitio.
FlaskBase puede usar opcionalmente plantillas para generar las respuestas de error 404 y 500 :
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
) Esto conducirá a por ejemplo http://localhost/non-existent-path que devuelve un estado 404 con el contenido de templates/404.html .
FlaskBase puede proporcionar opcionalmente redireccionamientos para las rutas comúnmente consultadas /favicon.ico , /robots.txt y /humans.txt a ubicaciones sensatas:
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"
) Esto conducirá a eg http://localhost/favicon.ico Devuelve una redirección 302 a http://localhost/static/favicon.ico .
Desafita automáticamente todas las bases de todas las rutas.
Obtienes dos ayudantes Jinja2 para usar en tus plantillas de Flask-Base:
now es una función que genera la fecha actual en el formato aprobado - {{ now('%Y') }} -> YYYYversioned_static es una función que huele con el activo aprobado - {{ versioned_static('asset.js') }} -> static/asset?v=asset-hashObtiene los siguientes encabezados configurados automáticamente:
X-Content-Type-Options: NOSNIFFPermissions-Policy: interest-cohort=()X-Frame-Options: SAMEORIGIN , que puede excluirse con exclude_xframe_options_header DecoratorCache-Control if response.cache_control.* No configurado y de acuerdo con la versión de activo estático (consulte versioned_static arriba)security.txt , robots.txt y humans.txt Si crea un security.txt , robots.txt o humans.txt en la raíz de su proyecto, estos se servirán en /.well-known/security.txt security.txt, /robots.txt y /humans.txt respectivamente.
/_status/check el punto final Agrega automáticamente el punto final /_status/check que usa los cachés de contenido para la verificación de salud de backend o EG por K8s para verificar el estado de los POD.
Para ejecutar las pruebas, ejecute SECRET_KEY=fake python3 -m unittest discover tests .