تخطَّ إلى المحتوى الرئيسي
خصم ٥٠٪ جميع الخطط، لفترة محدودة. تبدأ من $2.48/mo
17 min left
تطبيقات الويب والأعمال

مراجعة Django: هل ما زال يستحق العناء؟

B بواسطة Bill 17 دقيقة قراءة
Django Review title card: the Django dj logo on a green tile wired to database, admin table, form and container blocks

أصدر Django إصدارين وظيفيين وأعاد كتابة وتيرة إصداراته بالكامل خلال ثمانية أشهر، بين ديسمبر 2025 وأغسطس 2026.

حدث ذلك لإطار عمل لم تتغير سمعته كثيرًا منذ عام 2023: إطار Python المكتمل التجهيز، المنتج، صاحب الرأي، المتزامن فقط، والذي يخسر أرضه أمام FastAPI. وصف «المتزامن فقط» صار قديمًا، وقصة شعبيته أعقد مما توحي به الأرقام البارزة.

إذن هذا هو موقفي من سؤال ما إذا كان Django ما زال يستحق العناء في 6.1: حكم مع تقييم، وأنواع المشاريع التي تناسبه، وتلك التي صار FastAPI فيها الخيار الأفضل.

النسخة المختصرة

نعم، بشروط. يبقى Django 6.1 الخيار الافتراضي الأقوى عندما تكون لوحة الإدارة والمصادقة والنماذج وطبقة ORM هي معظم العمل، وقد ضاقت فجوة العمل غير المتزامن بما يكفي لألا يكون «المتزامن فقط» سببًا لاستبعاده. وهو غير مناسب لواجهة برمجية مفردة عالية التزامن بلا واجهة إدارة. 4 من 5.

  • ما تشتريه هو الحزمة المتكاملة. تأتي طبقة ORM والترحيلات ومصادقة الجلسات مع الصلاحيات وطبقة النماذج ولوحة إدارة مولَّدة معًا ومتكاملة سلفًا، لا كخمس مكتبات مع الوصلات بينها.
  • المهام الخلفية هي نقطة الضعف. يمنحك إطار Tasks في Django 6.0 مُزخرفًا ودالة إضافة إلى الطابور، لكن بلا worker، لذا يبقى اختيار Celery أو ما يعادله قرارًا تتخذه بنفسك.
  • الدعم غير المتزامن صار أفضل بكثير، وهو غير مكتمل بوضوح. يدعم Django العروض غير المتزامنة واستدعاءات ORM غير المتزامنة، لكن المعاملات لا تعمل في الوضع غير المتزامن. تحت WSGI، ما زال بإمكان العروض غير المتزامنة تنفيذ إدخال وإخراج غير متزامن متوازٍ داخل الطلب الواحد، لكنك لا تحصل على مزايا مكدس طلبات غير متزامن بالكامل؛ فالطلبات طويلة الأمد والتزامن العالي في الاتصالات يتطلبان ASGI.
  • صار التخطيط لما بعد 2027 أسهل. اعتبارًا من يناير 2028، يصدر Django إصدارًا وظيفيًا واحدًا كل عام، لكل منه ثلاث سنوات من الدعم، ويختفي وصف «LTS» لأن كل إصدار صار يحصل على هذا الالتزام.
  • مناسب للمنتجات كثيفة الإدارة وكثيفة عمليات CRUD وللفرق الصغيرة. غير مناسب لواجهة برمجية مفردة عالية الإنتاجية أو تعتمد على البث، بلا لوحة إدارة ولا نماذج، حيث يكون FastAPI الخيار الأطبع.

كيف أعددتُ هذه المراجعة: هذه مراجعة لـ Django 6.1 مبنية على ملاحظات الإصدار والتوثيق الخاصين بالمشروع نفسه، وعلى إعلان الحوكمة الصادر عن Django Software Foundation في أغسطس 2026، وعلى استطلاعي المطورين من JetBrains/PSF لعام 2024 ومن Django لعام 2025، وعلى ممارسين مذكورين بالاسم يكتبون علنًا عن تجربتهم في بيئة الإنتاج. لم أُجرِ تجربة إنتاجية تمتد أسابيع من أجل هذا المقال، ولا توجد هنا أي قياسات أداء: لم يُختبر شيء تحت الحمل. Django مجاني ومرخص برخصة BSD، ولا تربطني بالمشروع أي علاقة.

ما الذي تغيّر فعليًا في Django منذ 2025؟

خط زمني لإصدارات Django ونوافذ دعمها: Django 5.2 LTS مدعوم حتى أبريل 2028، وDjango 6.0 مع إطار Tasks في 3 ديسمبر 2025، وDjango 6.1 في 5 أغسطس 2026 بدعم أساسي حتى أبريل 2027 ودعم ممتد حتى ديسمبر 2027، وDjango 6.2 LTS في أبريل 2027 بدعم ممتد حتى أبريل 2030، ومن يناير 2028 إصدار وظيفي واحد سنويًا بثلاث سنوات من الدعم مع إلغاء وصف LTS

صدر Django 6.0 في 3 ديسمبر 2025 مع إطار Tasks أصلي وإضافات أخرى في النواة. واجهة ORM غير المتزامنة أقدم من ذلك: فقد أدخل Django 4.1 عمليات QuerySet غير المتزامنة عام 2022. وصار Django 6.1 الإصدار المستقر الحالي في 5 أغسطس 2026. ثم في 10 أغسطس 2026 أعلن المشروع إصدارًا وظيفيًا واحدًا في السنة اعتبارًا من يناير 2028، وثلاث سنوات من الدعم لكل إصدار، ونهاية وصف LTS.

ملاحظات إصدار 6.1 تؤكد أن 6.1 تدعم Python 3.12 و3.13 و3.14، مع انتهاء الدعم الأساسي في أبريل 2027 والدعم الممتد في ديسمبر 2027.

وتتغير أرقام الإصدارات معه. صارت تحمل السنة: Django 2028، ثم Django 2029 (على الأقل صار سؤال «أي إصدار تستخدم؟» أسهل في الإجابة). وتتوزع السنوات الثلاث على سنة من إصلاحات العلل العادية تليها سنتان من إصلاحات الأمان وفقدان البيانات، وهو ما كان يعنيه LTS، ولذلك يزول الوصف.

وهذا يترك نافذة محرجة لمشروع يبدأ اليوم. فـ Django 5.2 هو إصدار LTS الحالي، المدعوم حتى أبريل 2028. أما Django 6.1 فهو الإصدار المستقر الحالي، لكن دعمه الممتد ينتهي في ديسمبر 2027، أي قبل نحو أربعة أشهر من انتهاء نافذة دعم Django 5.2 في أبريل 2028.

إذن: السعي وراء أطول نافذة دعم يعني البدء من 5.2. والرغبة في إطار Tasks وأحدث مزايا فرع 6.x تعني البدء من 6.1 وقبول ترقية أخرى أبكر. لا خطأ في أي منهما، ويختفي هذا الاختيار المحرج حين يصل Django 6.2 LTS في أبريل 2027.

أقرأ تغيير الوتيرة على أنه علامة جيدة. المشاريع الآفلة تمطّط وعود الدعم في صمت، ولا تعيد هيكلتها علنًا بخطة مؤرخة. أما هذا المشروع فقد بسّط التزامًا كان يفي به أصلًا.

ما الذي ما زال Django يفعله أفضل من أي شيء آخر

ابدأ مشروع Django 6.1 وسيكون لديك مصادقة جلسات تعمل بنظام صلاحيات، وطبقة نماذج تتحقق وتعرض، ونظام ترحيلات مرتبط بنماذجك، وطبقة ORM، ولوحة إدارة مولَّدة، قبل أن تكتب ميزة واحدة. هذا هو العرض كله، وهو الجزء من Django الذي لم يحتج إلى تغيير.

القيمة ليست في وجود هذه القطع. القيمة في أنها صُمّمت بعضها في مواجهة بعض. فصلاحيات النماذج نفسها تغذّي لوحة الإدارة، وتغيير النموذج يولّد الترحيل ويحدّث نموذج لوحة الإدارة في النفس نفسه.

تجميع تغطية مكافئة من مكتبات مستقلة يوصلك إلى هناك في النهاية. لكنه يمنحك أيضًا سطح صيانة دائمًا عند كل وصلة، والوصلات هي حيث تسكن العلل.

لوحة الإدارة أداة للموظفين. المرجع الرسمي للوحة الإدارة يقول إن الاستخدام الموصى به لها يقتصر على كونها أداة إدارة داخلية للمؤسسة، وإنها ليست مخصصة لبناء واجهتك الأمامية بأكملها حولها. وصلاحيات النماذج تتحكم فيما يستطيع الموظفون فعله بعد دخولهم، أما الدخول نفسه فيتطلب is_staff. اعتبر ذلك قيدًا، وهو قيد جيد: تحصل مجانًا على مكتب خلفي داخلي كفء، ولا تحصل على واجهة موجهة للعملاء، فلا يُغرى أحد بإطلاق واحدة.

الإعدادات الأمنية الافتراضية هي النصف الآخر من الحجة نفسها. فحماية CSRF، وتمرير معاملات SQL عبر طبقة ORM، وتهريب XSS في القوالب، والحماية من الاختطاف بالنقر، كلها مفعّلة افتراضيًا بدل أن تكون أمورًا على مطور خبير أن يتذكر طلبها في المراجعة. الفريق الصغير يرث قرارات اتخذها من قرأوا عقدًا من تقارير الأمن.

ثم يأتي عامل العمر. يُقرأ على أنه عبء، أما أنا فأقرأه على أنه حجة المنظومة. فـ Django REST Framework موجود، وهو ممل بالطريقة التي تريد أن تكون بها البنية التحتية مملة.

وكذلك الحزم الناضجة للمشكلات التي تصادفها في الشهر الرابع: الترشيح، وتحديد المعدل، وخلفيات التخزين، وأنماط تعدد المستأجرين، وسجلات التدقيق. وحين تكون المشكلة غريبة بما يكفي لألا تغطيها أي حزمة، يوجد عادةً نقاش عمره خمسة عشر عامًا في قائمة بريدية عنها. أما من حيث الاتساع فلا أظن أن شيئًا آخر في Python يقترب، وهذا المحور تحديدًا هو سبب اختيار أي أحد لـ Django من الأساس.

أين يقصّر Django

ما زال Django يفتقر إلى نظام أنواع أصلي شامل عبر الإطار كله، وإيقاعه المحافظ يترك ثغرات لا تنبّهك إليها عبارة «مكتمل التجهيز»، وإطار Tasks في 6.0 بلا worker. تلك هي النواقص الثلاثة عند 6.1. ثغرة الأنواع هي التي تزعجك يوميًا، أما Tasks فهي التي تغيّر مخطط بنيتك.

ما زلت تجمع معظم قصة الأنواع من أدوات خارجية بدلًا من ذلك. django-stubs يوفّر تعريفات أنواع إضافة إلى ملحق mypy مخصص لسلوك Django الديناميكي. وتوثيقه الحالي يذكر دعمًا كاملًا لـ mypy ودعمًا أساسيًا لـ pyright وpyrefly وty. هذا وضع أفضل مما كان، لكنه ما زال طبقة توافق منفصلة لا نظام أنواع أصليًا شاملًا داخل Django نفسه.

وإذا كنت قادمًا من إطار مبني حول تلميحات الأنواع، فهذا تراجع ملموس في تجربة المحرر اليومية.

الإيقاع المحافظ تكلفة بقدر ما هو فضيلة. فـ Django يضيف الأشياء بحذر ومتأخرًا، ولهذا فإن الإطار الذي تعلّمته عام 2019 هو نفسه الذي تستطيع قراءته اليوم. ولهذا أيضًا تتوقف البطاريات حيث تتوقف: لا طبقة WebSocket في النواة، ولا مجدول مهام، ولا رأي في تنسيق المهام غير المتزامنة. تجاوز أحد هذه الخطوط وستعود إلى تركيب الأشياء بنفسك.

هل ما زال Django 6 بحاجة إلى Celery؟

ليس Celery تحديدًا. فإطار Tasks في Django 6.0 يوحّد طريقة تعريف المهمة وإضافتها إلى الطابور، لكنه لا ينفّذ العمل المصطف بنفسه. في بيئة الإنتاج ما زلت بحاجة إلى خلفية أو عملية worker تنفّذ المهام، وCelery خيار واحد لا شرط من الإطار. ملاحظات إصدار Django 6.0 صريحة بشأن الحد الفاصل: يتولى Django إنشاء المهام وإضافتها إلى الطابور لكنه لا يوفّر آلية worker، ويجب أن تتولى بنية تحتية خارجية إدارة التنفيذ، مثل عملية أو خدمة منفصلة.

ما تحصل عليه هو الواجهة:

from django.core.mail import send_mail
from django.tasks import task

@task
def email_users(emails, subject, message):
    return send_mail(subject, message, None, emails)

email_users.enqueue(...) يرسل المهمة إلى خلفية مُهيّأة. أما الخلفيتان اللتان تُشحنان مع 6.0 فمخصصتان للتطوير والاختبار (أي ليست تلك التي كنت ترجوها). والجدولة والتكرار وإعادة المحاولة والمتانة، كلها خارج النطاق.

صاغها Kevin Renskers، وهو مطور Django ممارس، بأشد وضوح في مراجعته لـ Tasks:

بدلًا من ذلك، حصلنا على تجريد بلا تنفيذ.

هو محق بشأن الشكل. لكنني كنت لأصوغ النية بشكل مختلف. ففي تصويت Steering Council على DEP 14، وهو اقتراح تحسين Django الذي تقوم عليه هذه الميزة، جادل Simon Charette بأنها «ينبغي أن تكون شيئًا تتصل به أطر مثل Celery وRQ»، ووصفها صاحب الاقتراح بأنها واجهة لعمال الخلفية لا بيئة تشغيل. فالنقد المنصف ليس أن Tasks معطلة. النقد هو أنها أضيق بكثير مما جعلت عبارة «مكتمل التجهيز» الناس يتوقعونه، وأن الثغرة التي تسدّها هي الثغرة المملة: بإمكان شيفرة تطبيقك أن تضيف عملًا إلى الطابور من دون استيراد مكتبة طوابير بعينها.

لذا خصّص ميزانية لطابور مهام في أي مشروع Django 6.1 يحتاج إلى إعادة المحاولة أو العمل المجدول أو رؤية الإخفاقات. إنه البند نفسه الذي كان قائمًا قبل 6.0، وإن كنت تأمل أن يحذفه هذا الإصدار من مخطط بنيتك، فهو لا يفعل.

إن كنت قد قررت أصلًا أن Django مناسب ولا تريد تجميع طبقة الخادم من الصفر، فإن خادم Django VPS من Cloudzy يمنحك نقطة انطلاق تديرها بنفسك مع Django وGunicorn وNginx وPostgreSQL، إضافة إلى صلاحية الجذر حين تحتاج إلى Redis أو Celery. يبقى الخادم خادمك أنت لتشغّله؛ فأنت تتخطى إعداد الجهاز الفارغ، لا المسؤولية التشغيلية.

هل صار دعم Django غير المتزامن كافيًا الآن؟

جيد بما يكفي لألا توقفك عبارة «إنه متزامن فقط»، وغير جيد بما يكفي لتبني عليه طبقة بيانات غير متزامنة بالكامل. النصفان صحيحان في 6.1. وأيهما ينطبق عليك يتوقف على ما تبنيه وعلى ما إذا كنت تقدّمه عبر ASGI أم WSGI، لأن هذا الاختيار هو ما يحدد إن كنت ستحصل على مكدس طلبات غير متزامن بالكامل ومعالجة كفؤة للاتصالات طويلة العمر.

جانب القدرات ليس موضع خلاف. فكل دالة في QuerySet يُطلق استعلام SQL لها نظير غير متزامن يبدأ بالبادئة a. وتعمل حلقة async for عبر كائنات QuerySet، وتشمل واجهات قاعدة البيانات غير المتزامنة دوال نماذج مثل asave() ودوال QuerySet مثل acreate(). يمكنك كتابة عرض غير متزامن ينتظر الاستعلامات ونداءات HTTP الصادرة المتوازية بلا غلاف لمجمّع خيوط. وبالمقارنة مع Django الذي كُتب عنه نقد «المتزامن فقط»، هذا إطار آخر.

ما يحدد السلوك هو بروتوكول النشر، لا إصدار الإطار، وهذا بالضبط ما يضطر منتدى Django نفسه إلى إعادة شرحه مرارًا. دليل الموضوع الخاص بالعمل غير المتزامن ينص على أن العروض غير المتزامنة، تحت خادم WSGI، تعمل في حلقة أحداث خاصة تُنشأ لمرة واحدة، فيمكنك استخدام الميزات غير المتزامنة لكن «لن تحصل على مزايا المكدس غير المتزامن».

خدمة مئات الاتصالات بلا خيوط Python، والبث البطيء، والاستقصاء الطويل: كل ذلك يتطلب ASGI. الشيفرة نفسها، وسلوك تزامن مختلف، ولا شيء في الإطار يخبرك أيهما تحصل عليه.

هذا الالتباس معمّر. فقد فتح مستخدم باسم tomcypress نقاشًا في منتدى Django يسأل فيه لماذا لا تنفّذ كل الطلبات المتتالية إلى عرض غير متزامن عملها الخلفي، فأشار عليه KenWhitesell، أحد رواد المنتدى، بحلقة أحداث WSGI. ذلك الحوار يعود إلى 2021 ولم يتغير منه شيء عند 6.1.

وهو التباس يجري تعزيزه من الخارج أيضًا. فصفحة مزايا وعيوب Django لدى TechVidvan تخبر القراء بأن Django «غير قادر على معالجة طلبات متعددة في الوقت نفسه»، وهو قول خاطئ بشأن Django 6.1 ومن النوع الذي ينهي التقييم قبل أن يبدأ. التزامن ليس شيئًا يفتقر إليه الإطار، بل شيء يقرره النشر.

أما الحد القاطع فهو المعاملات، و توثيق Django نفسه الخاص بالعمل غير المتزامن يقولها بوضوح:

المعاملات لا تعمل بعد في الوضع غير المتزامن. إن كان لديك جزء من الشيفرة يحتاج إلى سلوك المعاملات، فنوصي بكتابة ذلك الجزء كدالة متزامنة واحدة واستدعائه باستخدام sync_to_async().

الصفحة نفسها تصنّف أجزاءً أساسية من الإطار على أنها «غير آمنة في السياق غير المتزامن» وتمنعها من العمل في سياق غير متزامن، فترفع SynchronousOnlyOperation إن حاولت. إذن شكل تطبيق Django 6.1 غير المتزامن هو: عروض غير متزامنة وقراءات غير متزامنة، مع جزر متزامنة حيثما احتاجت الكتابة إلى الذرّية. قابل للعمل، وليس الشيء نفسه كإطار غير متزامن بطبيعته. رأيي على هذا المحور: أفضل بدرجة ملموسة، غير مكتمل، ونجاح واضح لكل ما لا يضع التزامن في المقام الأول.

هل جعل FastAPI من Django الخيار الافتراضي الخاطئ؟

مخطط قرار يسأل عمّا تبنيه فعلًا: Django يناسب منتجًا محوره لوحة الإدارة والمصادقة والصلاحيات والنماذج وكثافة عمليات CRUD لفريق صغير، ويشمل الأدوات الداخلية والأسواق الإلكترونية وبرمجيات المكاتب الخلفية والمنتجات كثيفة الإدارة، بينما يناسب FastAPI خدمة تقتصر على واجهة برمجية، بنماذج طلب واستجابة محدّدة الأنواع، وأحمال عمل غير متزامنة أولًا، وبث، وتزامن اتصالات عالٍ، وبلا لوحة إدارة أو نماذج، مع أعمدة استطلاع مطوري Python لعام 2024 التي تُظهر FastAPI عند 38% وDjango عند 35% بين جميع المشاركين، وDjango عند 61% وFastAPI عند 56% بين المشاركين من مجال تطوير الويب

بالنسبة لفئة محددة ومتنامية من المشاريع، نعم. استطلاع مطوري Python لعام 2024 من JetBrains ومؤسسة Python Software Foundation، والذي جُمع خلال أكتوبر ونوفمبر 2024 بمشاركة أكثر من 30 ألف شخص، وضع FastAPI عند 38% وDjango عند 35% وFlask عند 34% بين جميع المشاركين. أما بين من اختاروا تطوير الويب باعتباره أكثر ما يستخدمون Python من أجله، فقد بلغ Django 61% وFastAPI 56% وFlask 39%.

انظر جيدًا إلى ذلك السؤال قبل أن تأخذه إلى اجتماع تخطيط، لأنه سؤال متعدد الاختيارات. سُئل المشاركون عن الأطر التي يستخدمونها، لا عن الإطار الذي اختاروه، والمطور الذي يصون تطبيقًا متجانسًا بـ Django بينما يكتب خدمات بـ FastAPI يُحتسب في الاثنين. هذه ليست حصصًا سوقية حصرية، ولا أحد هنا يملك 38% من سوق. ما تُظهره هو إشارة منقسمة: تقدّم FastAPI على Django بين جميع المشاركين، بينما ظل Django متقدمًا على FastAPI بين من يستخدمون Python أساسًا لتطوير الويب.

ويضيف الاستطلاع الخاص بـ Django إشارة أخرى، من الناس الذين يستخدمون الإطار أصلًا. استطلاع مطوري Django لعام 2025، الذي أجرته Django Software Foundation مع JetBrains على 4,655 استجابة مُصفّاة جُمعت بين نوفمبر 2024 ويناير 2025، وجد أن 82% يكتبون Django باحتراف، و77% يسمّونه إطارهم الأكثر استخدامًا، و48% يرقّون مع كل إصدار مستقر، صعودًا من 40% قبل عام. المشاركون اختاروا أنفسهم، فهو يصف قاعدة المستخدمين الحالية لا السوق. اتساع الاستخدام وعمق الالتزام إشارتان مختلفتان، والرقم الثاني لـ Django أصح من الأول.

المواضع التي يتفوق فيها FastAPI أضيق وأحدّ مما توحي به فوارق الاستطلاع. فواجهة برمجية مبنية على الأنواع، حيث تكون نماذج Pydantic لديك هي طبقة التحقق ومخطط OpenAPI المولَّد هو العقد، تتفوق على Django مضافًا إليه طبقة تسلسل. FastAPI غير متزامن بطبيعته عند طبقة الطلب، لكن توثيقه هو نفسه صريح في أن عمليات المسار يمكن كتابتها بالطريقتين: فالمعالج أو التبعية المعلَنة بـ def تعمل في مجمّع خيوط خارجي.

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

من ينبغي أن يختار Django؟

اختر Django عند 6.1 حين تكون لوحة الإدارة والمصادقة والنماذج وطبقة ORM هي معظم العمل الذي أنت مقبل عليه: الأدوات الداخلية، والأسواق الإلكترونية، وبرمجيات المكاتب الخلفية. وهو أيضًا الخيار الصحيح لفريق صغير يحتاج إلى أن تعمل هذه الأشياء من اليوم الأول، ولفريق يحتاج أن يعرف الآن كيف ستبدو نافذة دعمه في 2029.

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

الفرق الصغيرة التي تحتاج إلى الإنتاجية من اليوم الأول. بثلاثة مطورين وبلا مهندس منصة، يبدأ فريق بكتابة المزايا بينما يبدأ الآخر بتقييم مكتبات المصادقة. ومن هناك تتراكم الفجوة.

الفرق التي تعمل على Django أصلًا وتخطط للسنوات الثلاث المقبلة. يمنحك Django 5.2 أرضية مدعومة حتى أبريل 2028، وتمنحك الوتيرة السنوية أرضية يمكن التنبؤ بها بعد ذلك. مدرج دعم واضح المعالم يساوي مالًا وقت التخطيط، ومن غير المعتاد أن يُسلَّم لك بهذا الوضوح.

من لا ينبغي أن يختار Django؟

لا تختر Django لواجهة برمجية عالية الإنتاجية أو تعتمد البث بلا لوحة إدارة خلفها: فـ FastAPI هو الخيار الافتراضي الأنظف لهذا الشكل من المشاريع. ولا تختره إن كنت تحتاج هذا العام إلى وصول غير متزامن للبيانات يشمل المعاملات، لأن 6.1 لا يملك ذلك. ولا تختره متوقعًا أن تشغّل البطاريات مهامك الخلفية.

واجهة برمجية مفردة عالية الإنتاجية أو تعتمد البث، بلا لوحة إدارة ولا نماذج. لا شيء تقريبًا مما يجيده Django يحمل ثقلًا في هذا الشكل من المشاريع، فتكون بذلك تصون بنية إطار كامل من أجل خدمة كانت تحتاج موجّهًا ومدقّقًا.

الفرق التي تحتاج اليوم إلى وصول غير متزامن بالكامل للبيانات، بما في ذلك المعاملات. لا يدعم Django 6.1 المعاملات في الوضع غير المتزامن. وتغليف عمليات الكتابة لديك بـ sync_to_async() نمط مشروع، لا حلًّا التفافيًا ستتجاوزه هذا العام، وحيث يكون ذلك غير مقبول فهو عائق حاسم لا خدشًا عابرًا.

الفرق التي تقرأ عبارة «مكتمل التجهيز» على أنها تشمل تنفيذ المهام الخلفية. لا يأتي Tasks مع worker. فإن كانت خطتك تفترض أن 6.0 أزالت الطابور من مكدسك، فالخطة تحتاج إلى إعادة طابور إليها قبل أن تلتزم بهذا الإطار.

أما اختيار إطار الويب الذي تتعلمه أولًا فسؤال آخر بإجابة أخرى، والأسئلة الشائعة أدناه تقدم النسخة المختصرة.

معرفة أين يتوقف Django هي ما يجعل البدء به آمنًا: فالمخارج المذكورة أعلاه مرئية قبل أن تلتزم، لا تُكتشف بعد ذلك.

الأسئلة الشائعة

هل مات Django؟

لا. فقد أصدر Django إصدارين وظيفيين بين ديسمبر 2025 وأغسطس 2026، ونشر خطة إصدار مُعاد هيكلتها تمتد إلى ثلاثينيات القرن. ونما FastAPI بسرعة وتقدّم على Django بنسبة 38% مقابل 35% بين جميع المشاركين في استطلاع مطوري Python لعام 2024، بينما تقدّم Django بنسبة 61% مقابل 56% بين من يستخدمون Python أساسًا لتطوير الويب. النمو السريع لإطار أحدث وموت إطار أقدم ادّعاءان مختلفان.

هل Django مناسب للمبتدئين؟

نعم، مع التحفظ بأنه أكثر ما يتطلب تعلّمه دفعة واحدة. فاتساع Django هو ما يجعله منتجًا، وهذا يعني أن المبتدئ يصطدم بطبقة ORM والترحيلات وطبقة القوالب ولوحة الإدارة قبل أن يُطلق أي شيء. ويستحق الرأي المخالف القراءة: تدوينة في Bite Code! يذهب إلى أن على المبتدئين البدء بـ Django تحديدًا لأن إعداداته الافتراضية تمنع أخطاءً معمارية يتركك الإطار البسيط ترتكبها وحدك.

هل Django أسرع من Flask؟

لا توجد إجابة شاملة. لم يُجرَ أي قياس أداء من أجل هذه المراجعة، ولن أثق بقياس دون معرفة حمله وطريقة نشره. ففي كثير من التطبيقات تكون استعلامات قاعدة البيانات ومشكلات N+1 ونداءات الواجهات الخارجية أهم من عبء الإطار نفسه. وإن كان معدل الطلبات الخام مهمًا في قرارك، فقِس التطبيق وإعداد الخادم اللذين تنوي تشغيلهما فعلًا.

بأي إصدار من Django ينبغي أن تبدأ مشروعًا جديدًا؟

ابدأ من 5.2 إن كانت أطول نافذة دعم هي الأهم: فهو إصدار LTS الحالي، مدعوم حتى أبريل 2028. وابدأ من 6.1 إن أردت إطار Tasks وأحدث مزايا فرع 6.x، قابلًا بدعم أساسي حتى أبريل 2027 تقريبًا ودعم ممتد حتى ديسمبر 2027، ثم مخططًا للترقية إلى Django 6.2 LTS حين يصل في أبريل 2027. ومن المقرر أن يمتد الدعم الممتد لـ Django 6.2 حتى أبريل 2030. واعتبارًا من يناير 2028، يحمل كل إصدار وظيفي سنوي ثلاث سنوات من الدعم.

هل تتعلم Django أم FastAPI أولًا؟

تعلّم ما يطابق العمل الذي تريد أن تقوم به. يعلّمك Django كيف يتركّب تطبيق ويب كامل: نمذجة البيانات، والترحيلات، والمصادقة، والنماذج، والقوالب، ولوحة الإدارة، مع بنية قد اتُّخذ قرارها نيابة عنك. أما FastAPI فيعلّمك تصميم واجهات برمجية محدّدة الأنواع وPython غير المتزامن، مع ألا يكاد شيء يُقرَّر نيابة عنك. لا أحد منهما هو الخيار الودود للمبتدئين بالمطلق، واختيار الأقرب إلى الوظيفة التي تستهدفها أفضل من اختيار الأسهل.

مشاركة

النقاش

التعليقات

سجّل الدخول للمشاركة في النقاش.

المزيد من المدونة

تابع القراءة.

جاهز للنشر؟ تبدأ من 2.48 $/شهر.

سحابة مستقلة منذ 2008. AMD EPYC، NVMe، 40 Gbps. استرداد خلال 14 يومًا.