"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يبدو أن خادم Flask Dev الخاص بي يبدأ مرتين؟

لماذا يبدو أن خادم Flask Dev الخاص بي يبدأ مرتين؟

تم النشر بتاريخ 2025-01-18
تصفح:121

Why Does My Flask Dev Server Appear to Start Twice?

لماذا يعمل خادم Flask Dev مرتين أثناء التطوير

عند تشغيل خادم Flask dev، قد يلاحظ المستخدمون عرض سطر الطباعة البداية مرتين. ينبع هذا السلوك من استخدام أداة إعادة التحميل الخاصة بـ Werkzeug، والتي تنشئ عملية فرعية لتسهيل التحديثات عند تغيير التعليمات البرمجية.

بدء أداة إعادة التحميل

يتم تشغيل تطبيق Flask باستخدام طريقة app.run()، والتي تستخدم داخليًا خادم تطوير Werkzeug. تقوم وظيفة Restart_with_reloader() بتشغيل عملية فرعية، مما يتسبب في إعادة تشغيل البرنامج النصي باستخدام subprocess.call().

تعطيل إعادة التحميل التلقائي

لمنع الطباعة المزدوجة ، اضبط use_reloader على False في app.run(). بدلاً من ذلك، استخدم أمر تشغيل القارورة مع علامة --no-reload:

FLASK_DEBUG=1 flask run --no-reload

اكتشاف إعادة التحميل

للتأكد مما إذا كان التطبيق يعمل في عملية إعادة التحميل الفرعية، استخدم werkzeug.serving.is_running_from_reloader function.

بديل للوحدات العمومية

إذا كانت الوحدات العمومية بحاجة إلى الإعداد، فاستخدم @app.before_first_request مصمم الديكور لإنشاء وظيفة سيتم تنفيذها مرة واحدة فقط بعد كل إعادة تحميل، بناء على الطلب الأول. ومع ذلك، لاحظ أن هذا الأسلوب قد يؤدي إلى استدعاءات متعددة في خوادم WSGI باستخدام عمليات متعددة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3