Jawaban:
Menjalankan aplikasi dalam mode pengembangan akan menunjukkan traceback dan konsol interaktif di browser ketika ada kesalahan. Untuk menjalankan dalam mode pengembangan, atur FLASK_ENV=development
variabel lingkungan lalu gunakan flask run
perintah (ingat juga untuk menunjuk FLASK_APP
ke aplikasi Anda).
Untuk Linux, Mac, Subsistem Linux untuk Windows, Git Bash pada Windows, dll .:
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
Untuk Windows CMD, gunakan set
alih-alih ekspor:
set FLASK_ENV=development
Untuk PowerShell, gunakan $env
:
$env:FLASK_ENV = "development"
Sebelum ke Flask 1.0, ini dikendalikan oleh FLASK_DEBUG=1
variabel lingkungan sebagai gantinya.
Jika Anda menggunakan app.run()
metode alih-alih flask run
perintah, operasikan debug=True
untuk mengaktifkan mode debug.
Tracebacks juga dicetak ke terminal yang menjalankan server, terlepas dari mode pengembangan.
Jika Anda menggunakan PyCharm, VS Code, dll., Anda dapat memanfaatkan debugger-nya untuk menelusuri kode dengan breakpoints. Konfigurasi run dapat menunjuk ke pemanggilan skrip app.run(debug=True, use_reloader=False)
, atau mengarahkannya ke venv/bin/flask
skrip dan menggunakannya seperti yang Anda lakukan dari baris perintah. Anda dapat membiarkan reloader dinonaktifkan, tetapi reload akan mematikan konteks debugging dan Anda harus menangkap breakpoint lagi.
Anda juga dapat menggunakan pdb, pudb, atau terminal debugger lainnya dengan memanggil set_trace
tampilan tempat Anda ingin memulai debugging.
Pastikan untuk tidak menggunakan terlalu luas kecuali blok. Mengitari semua kode Anda dengan catch-all try... except...
akan membungkam kesalahan yang ingin Anda debug. Ini tidak perlu secara umum, karena Flask sudah akan menangani pengecualian dengan menunjukkan kesalahan debugger atau 500 dan mencetak traceback ke konsol.
Anda dapat menggunakan app.run(debug=True)
untuk mengedit Werkzeug Debugger seperti yang disebutkan di bawah ini, dan saya seharusnya tahu.
debug=True
Anda sebenarnya menggunakan debuger Werkzeug sehingga itu bukan-atau ;-)
print 'xyz'
akan mencetak ke konsol. Jika Anda ingin men-debug di browser, Anda harus memaksakan kesalahan di mana Anda ingin melakukan debug. raise Exception('xyz')
. Ini akan memicu debug ke output di jendela browser.
Dari 1.1.x
dokumentasi , Anda dapat mengaktifkan mode debug dengan mengekspor variabel lingkungan ke prompt shell Anda:
export FLASK_APP=/daemon/api/views.py # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Anda juga dapat menggunakan ekstensi Flask Debug Toolbar untuk mendapatkan informasi yang lebih terperinci tertanam di halaman yang diberikan.
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>"
Mulai aplikasi sebagai berikut:
FLASK_APP=main.py FLASK_DEBUG=1 flask run
Jika Anda menggunakan Visual Studio Code, ganti
app.run(debug=True)
dengan
app.run()
Itu muncul ketika menyalakan debugger internal menonaktifkan debugger Kode VS.
Jika Anda ingin men-debug aplikasi labu Anda maka pergi saja ke folder tempat aplikasi labu itu. Jangan lupa untuk mengaktifkan lingkungan virtual Anda dan menempelkan garis-garis di konsol ganti "mainfilename" menjadi flask file utama.
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Setelah Anda mengaktifkan debugger untuk aplikasi labu, hampir setiap kesalahan akan dicetak di konsol atau di jendela browser. Jika Anda ingin mengetahui apa yang terjadi, Anda dapat menggunakan pernyataan cetak sederhana atau Anda juga dapat menggunakan console.log () untuk kode javascript.
Instal python-dotenv
di lingkungan virtual Anda.
Buat .flaskenv di root proyek Anda. Dengan root proyek, maksud saya folder yang memiliki file app.py Anda
Di dalam file ini tulis yang berikut ini:
FLASK_APP=myapp
FLASK_ENV=development
Sekarang jalankan perintah berikut:
flask run
Kiat cepat - jika Anda menggunakan PyCharm, buka Edit Configurations
=> Configurations
dan aktifkan FLASK_DEBUG
kotak centang, mulai ulang Run
.
Jika Anda menjalankannya secara lokal dan ingin dapat menelusuri kode:
python -m pdb script.py
app.run()
(baik dengan men-debug on atau off). Flask berperilaku seperti aplikasi python lainnya, sehingga Anda dapat men-debugnya dengan cara yang sama Anda men-debug aplikasi Python. Jika Anda ingin menggunakan pencatatan, gunakan pencatatan. Jika Anda ingin mencetak, gunakan cetakan. Anda bahkan dapat menggunakan debugger jika Anda mau.