जवाबों:
डेवलपमेंट मोड में ऐप चलाने पर ब्राउजर में इंटरएक्टिव ट्रेसबैक और कंसोल दिखाई देगा जब कोई त्रुटि होगी। विकास मोड में चलाने के लिए, FLASK_ENV=development
पर्यावरण चर सेट करें फिर flask run
कमांड का उपयोग करें ( FLASK_APP
अपने ऐप को इंगित करने के लिए याद रखें )।
लिनक्स के लिए, मैक, विंडोज के लिए लिनक्स सबसिस्टम, विंडोज पर गिट बैश आदि।:
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
Windows CMD के लिए, set
निर्यात के बजाय उपयोग करें :
set FLASK_ENV=development
PowerShell के लिए, उपयोग करें $env
:
$env:FLASK_ENV = "development"
फ्लास्क 1.0 से पहले, यह FLASK_DEBUG=1
इसके बजाय पर्यावरण चर द्वारा नियंत्रित किया गया था ।
यदि आप कमांड के app.run()
बजाय विधि का उपयोग कर रहे हैं flask run
, तो debug=True
डिबग मोड को सक्षम करने के लिए पास करें।
ट्रेसबैक भी विकास मोड की परवाह किए बिना सर्वर चलाने वाले टर्मिनल पर मुद्रित होते हैं।
यदि आप PyCharm, VS कोड आदि का उपयोग कर रहे हैं, तो आप ब्रेकपॉइंट के साथ कोड के माध्यम से कदम रखने के लिए इसके डिबगर का लाभ उठा सकते हैं। रन कॉन्फ़िगरेशन एक स्क्रिप्ट कॉलिंग को इंगित कर सकता है app.run(debug=True, use_reloader=False)
, या इसे venv/bin/flask
स्क्रिप्ट पर इंगित कर सकता है और इसका उपयोग कमांड लाइन से कर सकता है। आप पुनः लोडर को अक्षम कर सकते हैं, लेकिन एक पुनः लोड डिबगिंग संदर्भ को मार देगा और आपको फिर से एक ब्रेकपॉइंट पकड़ना होगा।
set_trace
जहाँ आप डीबग करना प्रारंभ करना चाहते हैं, वहां कॉल करके आप pdb, pudb, या किसी अन्य टर्मिनल डीबगर का उपयोग कर सकते हैं ।
सुनिश्चित करें कि ब्लॉकों को छोड़कर बहुत व्यापक उपयोग न करें। अपने सभी कोड को एक कैच के साथ चारों ओर try... except...
से घेरने से उस त्रुटि को शांत किया जाएगा जिसे आप डिबग करना चाहते हैं। यह सामान्य रूप से अनावश्यक है, क्योंकि फ्लास्क पहले से ही डिबगर या 500 त्रुटि दिखा कर और कंसोल पर ट्रेसबैक प्रिंट करके अपवादों को संभाल लेगा।
आप नीचे दिए गए app.run(debug=True)
अनुसार Werkzeug Debugger एडिट के लिए उपयोग कर सकते हैं , और मुझे पता होना चाहिए।
debug=True
वास्तव में वेर्केजग डिबगर का उपयोग कर रहे हैं, इसलिए यह या तो; या ;-) नहीं है
print 'xyz'
कंसोल पर प्रिंट होगा। यदि आप ब्राउज़र में डीबग करना चाहते हैं, तो आपको उस त्रुटि पर मजबूर करने की आवश्यकता होगी जहां आप डीबग करना चाहते हैं। raise Exception('xyz')
। यह ब्राउज़र विंडो में आउटपुट के लिए डिबग को ट्रिगर करेगा।
से 1.1.x
प्रलेखन , आप अपने सुरक्षा प्रॉम्प्ट के लिए एक वातावरण चर निर्यात करके डिबग मोड सक्षम कर सकते हैं:
export FLASK_APP=/daemon/api/views.py # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
प्रदान किए गए पृष्ठों में एम्बेडेड अधिक विस्तृत जानकारी प्राप्त करने के लिए फ्लास्क डिबग टूलबार एक्सटेंशन का भी उपयोग किया जा सकता है ।
from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension
import logging
app = Flask(__name__)
app.debug = True
app.secret_key = 'development key'
toolbar = DebugToolbarExtension(app)
@app.route('/')
def index():
logging.warning("See this message in Flask Debug Toolbar!")
return "<html><body></body></html>"
आवेदन निम्नानुसार शुरू करें:
FLASK_APP=main.py FLASK_DEBUG=1 flask run
यदि आप विज़ुअल स्टूडियो कोड का उपयोग कर रहे हैं, तो प्रतिस्थापित करें
app.run(debug=True)
साथ में
app.run()
यह तब दिखाई देता है जब आंतरिक डीबगर को चालू करना वीएस कोड डीबगर को अक्षम करता है।
अगर आप अपने फ्लास्क ऐप को डीबग करना चाहते हैं तो बस उस फ़ोल्डर में जाएं जहां फ्लास्क ऐप है। अपने आभासी वातावरण को सक्रिय करने और मुख्य फ़ाइल को फ्लास्क करने के लिए कंसोल परिवर्तन "मेनफिलनेम" में लाइनों को चिपकाना न भूलें।
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
फ्लास्क ऐप के लिए अपने डिबगर को सक्षम करने के बाद लगभग हर त्रुटि कंसोल या ब्राउज़र विंडो पर मुद्रित की जाएगी। यदि आप यह पता लगाना चाहते हैं कि क्या हो रहा है, तो आप सरल प्रिंट स्टेटमेंट का उपयोग कर सकते हैं या आप जावास्क्रिप्ट कोड के लिए कंसोल.लॉग () का भी उपयोग कर सकते हैं।
python-dotenv
अपने आभासी वातावरण में स्थापित करें ।
अपने प्रोजेक्ट रूट में .flaskenv बनाएं। प्रोजेक्ट रूट के द्वारा, मेरा मतलब है कि जिस फ़ोल्डर में आपका app.py फ़ाइल है
इस फ़ाइल के अंदर निम्नलिखित लिखें:
FLASK_APP=myapp
FLASK_ENV=development
अब निम्नलिखित आदेश जारी करें:
flask run
त्वरित टिप - यदि आप PyCharm का उपयोग करते हैं, तो Edit Configurations
=> पर जाएं Configurations
और FLASK_DEBUG
चेकबॉक्स को सक्षम करें , को पुनरारंभ करें Run
।
विकास पर्यावरण में लॉगर्स और प्रिंट स्टेटमेंट का उपयोग करें, आप उत्पादन वातावरण के मामले में संतरी के लिए जा सकते हैं।
यदि आप इसे स्थानीय स्तर पर चला रहे हैं और कोड के माध्यम से कदम रखना चाहते हैं:
python -m pdb script.py
app.run()
(या तो पर या बंद के साथ डिबग के बारे में) कुछ भी जादुई नहीं है । फ्लास्क किसी भी अन्य अजगर आवेदन की तरह व्यवहार करता है, इसलिए आप इसे उसी तरह से डीबग कर सकते हैं जिस तरह से आप किसी भी पायथन एप्लिकेशन को डीबग करते हैं। यदि आप लॉगिंग का उपयोग करना चाहते हैं, तो लॉगिंग का उपयोग करें। यदि आप प्रिंट करना चाहते हैं, तो प्रिंट का उपयोग करें। यदि आप चाहें तो आप डिबगर का उपयोग भी कर सकते हैं।