Extensão de frasco que aplica configurações comuns a todos os aplicativos de frasco da WebTeam.
from canonicalwebteam . flask_base . app import FlaskBase
app = FlaskBase ( __name__ , "app.name" )Ou:
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 o desenvolvimento local, é melhor testar este módulo com um de nossos projetos de site como o Ubuntu.com. Para mais informações, siga este guia (somente interno).
O Flaskbase inclui o proxIfix para evitar a remoção de SSL nos redirecionamentos.
O Flaskbase usa respostas de YAML para permitir uma configuração fácil de redirecionamentos e retorno de respostas excluídas, criando redirects.yaml , permanent-redirects.yaml e deleted.yaml no diretório raiz do site.
Opcionalmente, FlaskBase pode usar modelos para gerar as respostas de erro 404 e 500 :
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
) Isso levará a por exemplo http://localhost/non-existent-path retornando um status 404 com o conteúdo dos templates/404.html .
Opcionalmente, FlaskBase pode fornecer redirecionamentos para os caminhos comumente consultados /favicon.ico , /robots.txt e /humans.txt para locais sensíveis:
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"
) Isso levará a por exemplo, http://localhost/favicon.ico retornando um redirecionamento 302 para http://localhost/static/favicon.ico .
Limpa automaticamente todas as barras à direita de todas as rotas.
Você recebe dois ajudantes Jinja2 a serem usados em seus modelos da Flask-Base:
now é uma função que gera a data atual no formato aprovado - {{ now('%Y') }} -> YYYYversioned_static é uma função que as impressões digitais passam o ativo - {{ versioned_static('asset.js') }} -> static/asset?v=asset-hashVocê recebe os seguintes cabeçalhos definidos automaticamente:
X-Content-Type-Options: NOSNIFFPermissions-Policy: interest-cohort=()X-Frame-Options: SAMEORIGIN , que pode ser excluído com exclude_xframe_options_header DecoratorCache-Control If response.cache_control.* Não está definido e de acordo com o versão de ativo estático (consulte versioned_static acima)security.txt , robots.txt e humans.txt Se você criar um security.txt , robots.txt ou humans.txt na raiz do seu projeto, eles serão servidos em /.well-known/security.txt , /robots.txt e /humans.txt , respectivamente.
/_status/check endpoint Adiciona automaticamente o ponto de extremidade /_status/check , usado por cache de conteúdo para verificação de saúde de back-end ou por exemplo, por K8s para verificar o status dos pods.
Para executar os testes, execute SECRET_KEY=fake python3 -m unittest discover tests .