Yanıtlar:
Uygulamanın geliştirme modunda çalıştırılması, bir hata olduğunda tarayıcıda etkileşimli bir izleme ve konsol gösterecektir. Geliştirme modunda çalıştırmak için FLASK_ENV=developmentortam değişkenini ayarlayın ve ardından flask runkomutu kullanın ( FLASK_APPuygulamanızı da işaret etmeyi unutmayın).
Linux, Mac, Windows için Linux Alt Sistemi, Windows'ta Git Bash vb. İçin:
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
Windows CMD setiçin dışa aktarma yerine kullanın :
set FLASK_ENV=development
PowerShell için şunu kullanın $env:
$env:FLASK_ENV = "development"
Flask 1.0'dan önce bu, FLASK_DEBUG=1bunun yerine ortam değişkeni tarafından kontrol ediliyordu .
Komut app.run()yerine yöntemi kullanıyorsanız, hata ayıklama modunu etkinleştirmek için geçin.flask rundebug=True
İzleme boşlukları, geliştirme modundan bağımsız olarak sunucuyu çalıştıran terminale de yazdırılır.
PyCharm, VS Code, vb. Kullanıyorsanız, kodda kesme noktaları ile ilerlemek için hata ayıklayıcısından yararlanabilirsiniz. Çalıştırma yapılandırması, çağıran bir komut dosyasını işaret edebilir app.run(debug=True, use_reloader=False)veya venv/bin/flaskkomut satırına işaret edebilir ve komut satırından yaptığınız gibi onu kullanabilir. Yeniden yükleyiciyi devre dışı bırakabilirsiniz, ancak yeniden yükleme, hata ayıklama bağlamını ortadan kaldırır ve yeniden bir kesme noktası yakalamanız gerekir.
Ayrıca, set_tracehata ayıklamayı başlatmak istediğiniz görünümde arama yaparak pdb, pudb veya başka bir terminal hata ayıklayıcıyı da kullanabilirsiniz .
Bloklar dışında çok geniş kullanmadığınızdan emin olun. Tüm kodunuzu bir tümünü yakalama ile try... except...çevrelemek, hata ayıklamak istediğiniz hatayı susturur. Genel olarak gereksizdir, çünkü Flask hata ayıklayıcıyı veya bir 500 hatası göstererek ve izlemeyi konsola yazdırarak istisnaları halihazırda ele alacaktır.
Sen kullanabilirsiniz app.run(debug=True)için Werkzeug Debugger düzenlemek aşağıda belirtildiği gibi, ben bilmeliydim.
debug=True, aslında Werkzeug hata ayıklayıcısını kullanıyorsunuz, yani bu bir ya da ;-) değil
print 'xyz'konsola yazdıracaktır. Tarayıcıda hata ayıklamak istiyorsanız, hata ayıklamak istediğiniz yerde bir hata yapmaya zorlamanız gerekir. raise Exception('xyz'). Bu, hata ayıklamayı tarayıcı penceresinde çıktı olarak tetikleyecektir.
Gönderen 1.1.xbelgeler , kabuk komut bir ortam değişkeni ihraç ederek hata ayıklama modunu etkinleştirebilirsiniz:
export FLASK_APP=/daemon/api/views.py # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Oluşturulan sayfalara gömülü daha ayrıntılı bilgi almak için Flask Debug Toolbar uzantısı da kullanılabilir .
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>"
Uygulamayı aşağıdaki şekilde başlatın:
FLASK_APP=main.py FLASK_DEBUG=1 flask run
Visual Studio Code kullanıyorsanız, değiştirin
app.run(debug=True)
ile
app.run()
Dahili hata ayıklayıcıyı açtığınızda VS Code hata ayıklayıcısını devre dışı bırakır.
Flask uygulamanızda hata ayıklamak istiyorsanız, sadece flask uygulamasının bulunduğu klasöre gidin. Sanal ortamınızı etkinleştirmeyi ve konsoldaki satırları "mainfilename" değişikliğini flask ana dosyasına yapıştırmayı unutmayın.
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Hata ayıklayıcınızı flask uygulaması için etkinleştirdikten sonra, neredeyse her hata konsolda veya tarayıcı penceresinde yazdırılacaktır. Neler olduğunu anlamak istiyorsanız, basit yazdırma ifadelerini kullanabilir veya javascript kodu için console.log () da kullanabilirsiniz.
python-dotenvSanal ortamınıza kurun .
Proje kökünüzde bir .flaskenv oluşturun. Proje kökü derken, app.py dosyanızın bulunduğu klasörü kastediyorum
Bu dosyanın içine şunları yazın:
FLASK_APP=myapp
FLASK_ENV=development
Şimdi aşağıdaki komutu verin:
flask run
Hızlı ipucu - PyCharm kullanıyorsanız, Edit Configurations=> seçeneğine gidin Configurationsve FLASK_DEBUGonay kutusunu etkinleştirin Run,.
Geliştirme Ortamında kaydedicileri ve baskı ifadelerini kullanın, üretim ortamları durumunda nöbetçiye gidebilirsiniz.
Yerel olarak çalıştırıyorsanız ve kodda adım adım ilerleyebilmek istiyorsanız:
python -m pdb script.py
app.run()(hata ayıklama açık veya kapalıyken). Flask, diğer herhangi bir python uygulaması gibi davranır, böylece herhangi bir Python uygulamasında yaptığınız gibi hata ayıklayabilirsiniz. Günlük kaydını kullanmak istiyorsanız, günlük kaydını kullanın. Baskı almak istiyorsanız baskı kullanın. İsterseniz bir hata ayıklayıcı bile kullanabilirsiniz.