Flask -Erweiterung, die gemeinsame Konfigurationen auf alle Flask -Apps von WebTeam anwendet.
from canonicalwebteam . flask_base . app import FlaskBase
app = FlaskBase ( __name__ , "app.name" )Oder:
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" ,
)Für die lokale Entwicklung ist es am besten, dieses Modul mit einem unserer Website -Projekte wie Ubuntu.com zu testen. Für weitere Informationen folgen Sie diesem Handbuch (nur intern).
Flaskbase enthält Proxyfix, um SSL -Stripping bei Umleitungen zu vermeiden.
Flaskbase verwendet YAML-Responsen, um eine einfache Konfiguration von Umleitungen und die Rückgabe von gelöschten Antworten zu ermöglichen, indem Sie im Site permanent-redirects.yaml Root-Verzeichnis deleted.yaml redirects.yaml erstellen.
FlaskBase kann optional Vorlagen verwenden, um die Fehlerantworten 404 und 500 zu generieren:
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
) Dies führt dazu, dass EG http://localhost/non-existent-path einen 404 Status mit dem Inhalt der templates/404.html zurückgibt.
FlaskBase kann optional Weiterleitungen für die allgemein abgefragten Pfade /favicon.ico , /robots.txt und /humans.txt an sinnvolle Orte bereitstellen:
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"
) Dies führt 302 http://localhost/static/favicon.ico http://localhost/favicon.ico
Löscht automatisch alle nachverfolgenden Schrägstriche von allen Strecken.
Sie erhalten zwei Jinja2-Helfer in Ihren Vorlagen von Flask-Base:
now ist eine Funktion, die das aktuelle Datum im bestandenen Format ausgibt - {{ now('%Y') }} -> YYYYversioned_static ist eine Funktion, die das bestandene Asset - {{ versioned_static('asset.js') }} -> static/asset?v=asset-hashSie erhalten die folgenden Header automatisch fest:
X-Content-Type-Options: NOSNIFFPermissions-Policy: interest-cohort=()X-Frame-Options: SAMEORIGIN , das mit exclude_xframe_options_header Decorator ausgeschlossen werden kannCache-Control versioned_static response.cache_control.*security.txt , robots.txt und humans.txt Wenn Sie im Root Ihres Projekts einen security.txt , robots.txt oder humans.txt erstellen, werden diese unter /.well-known/security.txt , /robots.txt bzw. /humans.txt zugestellt.
/_status/check achendpunkt Fügt automatisch den Endpunkt /_status/check -Endpunkt hinzu, der von Inhalts-Caches für die Backend Health Checking oder z. B. von K8S zur Überprüfung des Status von Pods verwendet wird.
Um die Tests auszuführen, führen Sie SECRET_KEY=fake python3 -m unittest discover tests aus.