ส่วนขยายของขวดที่ใช้การกำหนดค่าทั่วไปกับแอพ Flask ทั้งหมดของ WebTeam
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 สำหรับข้อมูลเพิ่มเติมให้ทำตามคำแนะนำนี้ (ภายในเท่านั้น)
FlaskBase รวมถึง ProxyFix เพื่อหลีกเลี่ยงการลอกแบบ SSL ในการเปลี่ยนเส้นทาง
FlaskBase ใช้ YAML-responses เพื่อให้สามารถกำหนดค่าการเปลี่ยนเส้นทางได้ง่ายและกลับมาของการตอบสนองที่ถูกลบโดยการสร้าง 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 ส่งคืนสถานะ 404 พร้อมเนื้อหาของ templates/404.html
FlaskBase สามารถเลือกการเปลี่ยนเส้นทางสำหรับเส้นทางที่สอบถามทั่วไป /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 การส่งกลับ 302 การเปลี่ยนเส้นทางไปยัง http://localhost/static/favicon.ico
ล้างสแลชต่อท้ายทั้งหมดจากทุกเส้นทางโดยอัตโนมัติ
คุณได้รับผู้ช่วย Jinja2 สองคนที่จะใช้ในเทมเพลตของคุณจาก Flask-Base:
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 decoratorCache-Control ถ้า response.cache_control.* ไม่ได้ตั้งค่าและตามเวอร์ชันสินทรัพย์แบบคงที่ (ดู 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 โดยอัตโนมัติซึ่งใช้โดยคิวเนื้อหาสำหรับการตรวจสุขภาพแบ็กเอนด์หรือเช่น K8S สำหรับการตรวจสอบสถานะของพ็อด
ในการเรียกใช้การทดสอบดำเนินการ SECRET_KEY=fake python3 -m unittest discover tests