2012-10-07 23 views

Trả lời

19

Bạn có thể sử dụng Blueprint.app_errorhandler phương pháp như thế này:

bp = Blueprint('errors', __name__) 

@bp.app_errorhandler(404) 
def handle_404(err): 
    return render_template('404.html'), 404 

@bp.app_errorhandler(500) 
def handle_500(err): 
    return render_template('500.html'), 500 
+3

Ngay cả với điều này tại chỗ, 'hủy bỏ (404)' trong chế độ xem của kế hoạch chi tiết sẽ được xử lý bởi trình xử lý lỗi của ứng dụng chứ không phải điều này. Xem [Flask doc] (http://flask.pocoo.org/docs/0.10/api/#flask.Blueprint.errorhandler) để biết thêm thông tin. – Devi

+1

Flask thực sự hút bigtime trong – TjerkW

+0

này là app_errorhandler không được chấp nhận? – user805981

1

Flask doesnt support blueprint level error handlers for 404 and 500 errors . Một BluePrint là một trừu tượng bị rò rỉ. Tốt hơn là nên sử dụng một ứng dụng WSGI mới cho việc này, nếu bạn cần các trình xử lý lỗi riêng biệt, điều này có ý nghĩa hơn.

Ngoài ra tôi khuyên bạn không nên sử dụng bình, nó sử dụng hình cầu trên khắp mọi nơi, làm cho mã của bạn khó quản lý nếu nó phát triển lớn hơn.

+2

được giảm giá, vì đề xuất bình là rất chủ quan và không liên quan gì đến câu hỏi – iScrE4m

3

Tôi cũng không thể nhận câu trả lời được đánh giá hàng đầu để làm việc, nhưng đây là giải pháp thay thế.

Bạn có thể sử dụng thiết bị thu thập tại kết thúc của Kế hoạch chi tiết của bạn, không chắc chắn mức độ mạnh mẽ/được đề xuất, nhưng nó hoạt động. Bạn cũng có thể thêm các thông báo lỗi khác nhau cho các phương thức khác nhau.

@blueprint.route('/<path:path>') 
def page_not_found(path): 
    return "Custom failure message" 
Các vấn đề liên quan