اذهب إلى المحتوى

السؤال

نشر

بعد عمل مشروع بإستخدام جانغو Django وجدت أن الموقع يصبح بطيء بعض الشيء، كيف أتأكد من سرعة الأكواد؟

في PHP و Laravel يمكن أن أستخدم أدوات مثل Debug bar ، فهل توجد أداة أو طريقة لفحص الكود ومعرفة إستعلامات SQL التي تتم لتحديد مكان الخلل الذي يسبب بطء الموقع؟

Recommended Posts

  • 1
نشر

نعم يُمكنك إستخدام تطبيق django-debug-toolbar الذي هو عبارة عن مجموعة من اللوحات التي تعرضُ معلومات لاكتشاف وتصحيح أخطاء متنوعة حول الطلب (requests) و الإستجابة (responses). إليك لقطة شاشة توضح هذا الشريط:

68747470733a2f2f7261772e6769746875622e63

لتثبيت التطبيق نقوم بتنفيذ الأمر التالي:

pip install django-debug-toolbar

قم بإضافة التطبيق إلى قائمة تطبيقات المشروع في ملف الإعدادات settings.py:

INSTALLED_APPS = [
    # ...
    "debug_toolbar",
    # ...
]

أضف رابط التطبيق إلى ملف روابط المشروع:

from django.urls import include, path

urlpatterns = [
    # ...
    path('__debug__/', include('debug_toolbar.urls')),
]

بعدها أضف البرمجية الوسطية (middleware) التالية إلى قائمة البرمجيات الوسطية في ملف الإعدادات:

MIDDLEWARE = [
    # ...
    "debug_toolbar.middleware.DebugToolbarMiddleware",
    # ...
]

بقي فقط أن تُضيف الأيبي الخاص بك إلى الإعدادات كي يظهر الشريط فقط عندك: ( في حالتنا نستخدم الأيبي المحلي localhost)

INTERNAL_IPS = [
    # ...
    "127.0.0.1", # يمكنك إضافة الأيبي المحلي لوكالهوست أو الأيبي الداخلي مثلا: 192.168.1.1
    # ...
]

وبهذا تكون قد قُمت بإعداد الشريط.

ملاحظة: الشريط لا يظهر إلا في حالة DEBUG = True والأيبي الخاص بك مُتواجد داخل INTERNAL_IPS.

 

  • 1
نشر

نعم هناك العديد من الطرق لفحص أكواد جانغو واشهر هذه الطرق هي unittest و هي مكتبة مدمجة في مكتبات Python القياسية.

كما يمكن ايضا استخدام مكتبات اخرى.

اما بالنسبة لفحص إستعلامات SQL يجب نتحقق من بعض الاعتبارات لجعل تطبيق Django أسرع.

اولا يجب تقليل كمية الاستفسارات قدر الامكان وذلك بمراقبة هذه الاستفسارات عن طريق استخدام اداة ك Django Debug Toolbar

ثانيا استخدم الطريقة الغير متزامنة أينما شئت باستخدام Celery

هناك بعض العمليات التي لا تتطلب أن يتم تنفيذها بشكل متزامن والتي قد تستغرق بعض الوقت وتبطئ تطبيقنا. على سبيل المثال ، إرسال بريد إلكتروني إلى المستخدم بعد قيامه بإجراء ما ، أو حساب القيم لتقرير أو تحديث بعض المعلومات داخل قاعدة البيانات. بالإضافة إلى ذلك ، هناك بعض العمليات التي قد تستغرق وقتًا طويلاً للانتهاء والتي ستؤثر على تطبيقنا مباشرةً.

لكل هذه الأنواع من الإجراءات ، يمكنك استخدام Celery

Celery عبارة عن قائمة انتظار مهام تركز على المعالجة في الوقت الفعلي ، مع دعم جدولة المهام أيضًا.

ثالثا قم بالستخدام ال Cache.

وايضا هناك بعض الامور التي يجب مراعاتها ككتابة كود نظيف.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...