Flask - Blueprints
WHAT
Blueprints - Bản thiết kế - là concept trong Flask, dùng để chia nhỏ ứng dụng thành các components và support các common patterns.
Một blueprints hoạt động giống với 1 Flask application object, nhưng nó không thực sự là 1 application.
Chính xác thì nó là: bản thiết kế làm sao để cấu trúc và mở rộng 1 application.
WHY
- Là nhân tố cấu thành lên 1 application. Một project được tạo nên từ: Application object, several extensions, và register a collection of blueprints.
- Register blueprints với application được ở 1 URL prefix hoặc là subdomain. Parameters in URL prefix/subdomain sẽ trở thành view arguments luôn.
- Có thể register nhiều lần trong application, với URL rules khác nhau.
HOW
Khai báo 1 blueprint, define name, url prefix nếu cần.
Register vào application với command app.register_blueprint(XXX.bp)
.
Ta có thể register 1 blueprint này vào 1 blueprint khác (nesting blueprints.)
Blueprint Resources
- Resource folder:
single_page.root_path
. - Static files:
admin = Blueprint('admin', __name__, static_folder='static')
- Template folder: Use options
template_folder='template'
khi khởi tạo. - url building:
url_for('admin.index')
- Error handlers:
@simple_page.errorhandler(404)
Notes
Application Object: Center object của Flask application. (
Flask(__name__)
). Nhiệm vụ handle incoming request, routing them tới view functions, return response.Extensions: Các package riêng lẻ có thể cài và integrate với Flask. Vd: Flask-SQLAlchemy. Flask làm theo kiểu modular design nên rất dễ để add extra functionality.
Blueprints: Way to organize related views and other code into separated modules. Một application to có thể chia thành nhiều blueprints nhỏ, trong đó bao gồm cả routes, views, templates, … Sau đó có thể register blueprints này với application object, making those routes available.