Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Pelayan Dev Flask Saya Muncul Bermula Dua Kali?

Mengapa Pelayan Dev Flask Saya Muncul Bermula Dua Kali?

Linda Hamilton
Linda Hamiltonasal
2024-12-15 15:31:10219semak imbas

Why Does My Flask Dev Server Appear to Start Twice?

Mengapa Pelayan Pembangun Flask Berjalan Dua Kali Semasa Pembangunan

Apabila menjalankan pelayan pembangun Flask, pengguna mungkin melihat garis cetakan mula dipaparkan dua kali. Tingkah laku ini berpunca daripada penggunaan pemuat semula Werkzeug, yang mencipta proses kanak-kanak untuk memudahkan kemas kini apabila kod berubah.

Permulaan Pemuat Semula

Apl Flask dijalankan dengan kaedah app.run(), yang secara dalaman menggunakan pelayan pembangunan Werkzeug. Fungsi restart_with_reloader() melancarkan proses anak, menyebabkan skrip dijalankan semula dengan subprocess.call().

Lumpuhkan Muat Semula Auto

Untuk menyekat cetakan dua kali , tetapkan use_reloader kepada False in app.run(). Sebagai alternatif, gunakan arahan larian kelalang dengan bendera --no-reload:

FLASK_DEBUG=1 flask run --no-reload

Pengesanan Muat Semula

Untuk memastikan sama ada apl sedang berjalan dalam pemuatan semula proses anak, gunakan werkzeug.serving.is_running_from_reloader fungsi.

Alternatif untuk Global Modul

Jika global modul perlu disediakan, gunakan penghias @app.before_first_request untuk mencipta fungsi yang akan dilaksanakan sekali sahaja selepas setiap muat semula, atas permintaan pertama. Walau bagaimanapun, ambil perhatian bahawa pendekatan ini mungkin membawa kepada berbilang invokasi dalam pelayan WSGI yang menggunakan berbilang proses.

Atas ialah kandungan terperinci Mengapa Pelayan Dev Flask Saya Muncul Bermula Dua Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn