لماذا يعمل خادم 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