Ekstensi Flask yang menerapkan konfigurasi umum untuk semua aplikasi Flask Webteam.
from canonicalwebteam . flask_base . app import FlaskBase
app = FlaskBase ( __name__ , "app.name" )Atau:
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" ,
)Untuk pengembangan lokal, yang terbaik adalah menguji modul ini dengan salah satu proyek situs web kami seperti ubuntu.com. Untuk informasi lebih lanjut, ikuti panduan ini (hanya internal).
FlaskBase termasuk proxyfix untuk menghindari pengupasan SSL pada pengalihan.
FlaskBase deleted.yaml respons YAML untuk memungkinkan konfigurasi pengalihan yang mudah dan pengembalian respons yang permanent-redirects.yaml , dengan membuat redirects.yaml .
FlaskBase dapat secara opsional menggunakan templat untuk menghasilkan respons kesalahan 404 dan 500 :
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
) Ini akan mengarah ke EG http://localhost/non-existent-path mengembalikan status 404 dengan isi templates/404.html .
FlaskBase dapat secara opsional dapat memberikan pengalihan untuk jalur yang umum diminta /favicon.ico , /robots.txt dan /humans.txt ke lokasi yang masuk akal:
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"
) Ini akan menyebabkan EG http://localhost/favicon.ico mengembalikan pengalihan 302 ke http://localhost/static/favicon.ico .
Secara otomatis menghapus semua tebasan trailing dari semua rute.
Anda mendapatkan dua pembantu Jinja2 untuk digunakan dalam templat Anda dari flask-base:
now adalah fungsi yang mengeluarkan tanggal saat ini dalam format yang dilewatkan - {{ now('%Y') }} -> YYYYversioned_static adalah fungsi yang sidik jari aset yang dilewati - {{ versioned_static('asset.js') }} -> static/asset?v=asset-hashAnda mendapatkan header berikut secara otomatis diatur:
X-Content-Type-Options: NOSNIFFPermissions-Policy: interest-cohort=()X-Frame-Options: SAMEORIGIN , yang dapat dikecualikan dengan exclude_xframe_options_header DecoratorCache-Control if response.cache_control.* Tidak diatur dan menurut versi asset statis (lihat versioned_static di atas)security.txt , robots.txt dan humans.txt Jika Anda membuat security.txt , robots.txt atau humans.txt di akar proyek Anda, ini akan disajikan di /.well-known/security.txt , /robots.txt dan /humans.txt masing-masing.
/_status/check titik akhir Secara otomatis menambahkan titik akhir /_status/check yang digunakan oleh cache konten untuk pemeriksaan kesehatan backend atau misalnya oleh K8s untuk memeriksa status pod.
Untuk menjalankan tes, Execute SECRET_KEY=fake python3 -m unittest discover tests .