WebteamのすべてのFlaskアプリに共通の構成を適用する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のようなウェブサイトプロジェクトの1つでこのモジュールをテストするのが最善です。詳細については、このガイド(内部のみ)をフォローしてください。
FlaskBaseには、リダイレクト上のSSLストリッピングを避けるためのProxyFixが含まれています。
FlaskBaseはYAML応答を使用して、リダイレクトのリダイレクトと削除された応答のリターンを簡単に構成し、 redirects.yaml 、 permanent-redirects.yamlおよびdeleted.yamlサイトルートディレクトリの削除を可能にします。
FlaskBase 、オプションでテンプレートを使用して、 404および500エラー応答を生成できます。
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
)これにより、 http://localhost/non-existent-path templates/404.htmlの内容を使用して404ステータスを返すことができます。
FlaskBase 、一般的にクエリされたPaths /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.icoに302リダイレクトを返すなどにつながります。
すべてのルートからすべてのトレーリングスラッシュを自動的にクリアします。
Flask-Baseからテンプレートで使用できる2つの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デコレータで除外できますCache-Control response.cache_control.* SETが設定されておらず、静的資産バージョンに従って( versioned_static上記を参照)security.txt 、 robots.txt 、およびhumans.txt security.txt 、 robots.txt 、またはhumans.txtをプロジェクトのルートに作成する場合、これらはそれぞれ/.well-known/security.txt 、 /robots.txt 、および/humans.txtで提供されます。
/_status/check /_status/check Endpointを自動的に追加します。これは、バックエンドヘルスチェックのためにコンテンツキャッシュによって使用される、またはポッドのステータスをチェックするためにK8Sによって使用されます。
テストを実行するにはSECRET_KEY=fake python3 -m unittest discover testsを実行します。