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

السؤال

نشر

لقد وجدت هذا الكود التالي في أحد المشاريع المفتوحة المصدر، الكود التالي مهمته إحتساب الوقت الذي يستغرقه كل طلب:

@app.before_request
def before_request():
  g.start = time.time()

@app.teardown_request
def teardown_request(exception=None):
  diff_time = time.time() - g.start
  print(diff_time)

لكنني لا أعرف ما هو الكائن g الموجود في الكود، ما هي مهمة هذا الكائن وفيما يستخدم؟

Recommended Posts

  • 1
نشر

شرح الشفرة:

  • app.before_request: تقوم بتسجيل الدالة ليتم تشغيلها عند بداية كل طلب (request) في مثالك قامت بتسجيل الدالة before_request.
  • app.teardown_request: تقوم بتسجيل الدالة ليتم تشغيلها عند نهاية كل طلب (request) في مثالك قامت بتسجيل الدالة teardown_request.

  • g هو كائن يوفره Flask. هو عبارة عن كائن شامل تحفظ فيه أي بيانات تريدها أثناء سياق طلب واحد. في المثال الذي طرحته قُمت بالاحتفاظ بوقت البداية 
    g.start = time.time()

    والذي قُمت باستخدامه لاحقاً في الدالة teardown_request  لحساب الفرق بين وقت البداية والنهاية

     diff_time = time.time() - g.start

    ملاحظة:

g كائن يعيش بين app.before_request و بين app.teardown_request اي في سياق التطبيق (the application context) يعني هذا أن g يختلف من طلب لآخر.

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...