Quart – إطار Flask غير المتزامن للبايثون

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة عن Quart

Quart هو إطار ويب غير متزامن حديث للغة Python، يمثل تطورًا للإطار الشهير Flask مع دعم كامل للبرمجة غير المتزامنة. يعتمد Quart على asyncio، مما يوفر أداءً عاليًا وقابلية توسع ممتازة، مع الحفاظ على التوافق مع واجهة Flask API. هذا يجعله الخيار الأمثل للمطورين الذين يرغبون في الانتقال من البرمجة المتزامنة إلى غير المتزامنة دون تغييرات جذرية في بنية التطبيق.

ما هو Quart ولماذا تحتاجه

تم تصميم Quart لحل قيود Flask في مجال البرمجة غير المتزامنة. يتيح لك استخدام async def في جميع أجزاء التطبيق: معالجات المسارات، الوسائط البرمجية (middleware)، الخطافات (hooks)، والاختبارات. هذا مهم بشكل خاص لتطبيقات الويب الحديثة التي تتعامل غالبًا مع واجهات برمجية خارجية (APIs)، قواعد البيانات، وتتطلب إنتاجية عالية.

المزايا الرئيسية لـ Quart

يوفر Quart للمطورين العديد من المزايا مقارنة بالأطر المتزامنة التقليدية:

  • غير متزامن بالكامل: يمكن تنفيذ جميع العمليات بشكل غير متزامن
  • أداء عالٍ: أداء أفضل بكثير تحت الأحمال العالية
  • دعم مدمج لـ WebSocket: دعم أصلي لـ WebSocket بدون إضافات إضافية
  • توافق مع Flask: ترقية سهلة لتطبيقات Flask الحالية
  • معايير ويب حديثة: دعم SSE، HTTP/2، وتقنيات حديثة أخرى

مقارنة بين Quart و Flask

الميزة Flask Quart
البرمجة غير المتزامنة محدودة (منذ Flask 2.0+) دعم كامل لـ asyncio
WebSocket يتطلب إضافات دعم مدمج
التوافق مع Flask نعم نعم (عالٍ)
نوع الخادم WSGI ASGI (عبر Hypercorn/Uvicorn)
الأداء متوسط عالٍ
دعم HTTP/2 لا نعم
أحداث الخادم (SSE) صعب دعم مدمج
المهام الخلفية عبر Celery أصليًا عبر asyncio

التثبيت وإعداد البيئة

تثبيت Quart

للبدء مع Quart، يجب تثبيت الحزمة الأساسية:

pip install quart

تثبيت خادم ASGI

يتطلب Quart خادم ASGI للتشغيل. يُوصى باستخدام Hypercorn:

pip install hypercorn

بدلاً من ذلك، يمكن استخدام Uvicorn:

pip install uvicorn

التبعيات الإضافية

للعمل الكامل مع ميزات Quart المختلفة، يُوصى بتثبيت:

pip install quart[dotenv]  # للعمل مع ملفات .env
pip install quart-cors     # لدعم CORS
pip install quart-schema   # للتحقق من صحة البيانات

إنشاء أول تطبيق

تطبيق أساسي

from quart import Quart

app = Quart(__name__)

@app.route('/')
async def hello():
    return 'مرحبًا من Quart!'

@app.route('/health')
async def health():
    return {'status': 'healthy', 'framework': 'Quart'}

if __name__ == '__main__':
    app.run(debug=True)

تشغيل التطبيق

هناك عدة طرق لتشغيل تطبيق Quart:

عبر خادم التطوير المدمج:

python app.py

عبر Hypercorn (مُوصى به):


                
    
    

توصيات