abort()
या जब त्रुटि वास्तव में हुई, का उपयोग कर फ्लास्क में एक अच्छा त्रुटि हैंडलर है।फ्लास्क - कस्टम abort() कोड कैसे बनाएं?
बोतल प्रलेखन से त्रुटि 404 हैंडलर के लिए एक उदाहरण है:
@app.errorhandler(404)
def not_found(error):
return render_template('404.html'), 404
तो, मैं कस्टम त्रुटि कोड बनाने की कोशिश की तरह
if False:
abort(777)
@app.errorhandler(777)
def something_is_wrong(error):
return render_template('777.html'), 777
लेकिन यह काम नहीं करता है और WERKZEUG डिबगर का कहना है : LookupError: 777
मुझे this question मिला जो मुझे लगता है कि मुझे ऐसा करना चाहिए:
if False:
return '777 error', 777
दुर्भाग्य से, कोड ऊपर सफेद स्क्रीन उत्पादन, यहां तक कि WERKZEUG डिबगर बाहर नहीं आती है
मैं जानता हूँ कि मैं बस कर सकते हैं:
if False:
return render_template('777.html')
लेकिन यह कोड क्लीनर अगर कर देगा मैं abort()
का उपयोग करता हूं। क्या कस्टम त्रुटि कोड बनाने का कोई तरीका है?
धन्यवाद, मैं त्रुटि का उपयोग करता हूं 400 bad_request जब उपयोगकर्ता ने URL में मैन्युअल रूप से गलत मान टाइप किया था (क्योंकि URL में ड्रॉपडाउन सूची से उपयोगकर्ता इनपुट शामिल है)। ** यह काम करता है, लेकिन क्या यह सही है? ** – hrsetyono
शायद, इस बात पर निर्भर करता है कि आप इनपुट से इनकार क्यों कर रहे हैं। यदि आप सुरक्षा कारण से अवरुद्ध कर रहे हैं तो एक और उचित/सामान्य कोड 404 हो सकता है, या यहां तक कि 403 भी हो सकता है। –
402 के बारे में क्या? वह एक werkzeug में अपरिभाषित है लेकिन यह एक वैध होना चाहिए। – Pwnna