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

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

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

ما الميزات التي يقدمها لنا أي إطار عمل Framework؟

هناك ثلاث ميزات اساسية يقدمها لنا أي إطار عمل، تتمثل في ما يلي:

  1. توفير طريقة للتعامل مع قاعدة البيانات، وعادةً ما تسمى ضمن إطار العمل باسم النموذج Model وذلك عبر الـ ORM التي هي اختصار Object–relational mapping وتعني ربط الكائنات العِلاقيَّة، وظيفته تحويل التعامل مع قاعدة البيانات من اللغة الطبيعية لها SQL إلى لغة البرمجة المبني فيها إطار العمل، وذلك لتسهيل التعامل مع قاعدة البيانات
  2. توفير بنية لتحويل الطلبات Requests على الخادم إلى توابع يتم تنفيذها ضمن إطار العمل تسمى عادةً بالمتحكم Controller
  3. توفير طريقة لدمج محتوى قاعدة البيانات مع ملفات الـ HTML من أجل تكوين الواجهة النهائية والتي تسمى عادةً بالعرض View

تشكل هذه العناصر الثلاثة مجتمعةً أهم جزء من إطار العمل، وتسمى هذه الثلاثية بـ MVC وهي اختصار لـ Model View Controller، أي نموذج متحكم وعرض.

ما هو إطار العمل جانغو Django؟

جانغو Django هو إطار عمل مجّاني مفتوح المصدر تم إنشاؤه في 2005, وهو مخصص لبناء مواقع وتطبيقات الويب، من أهم ميزات جانغو هو مفهوم قابلية إعادة الاستخدام Reusability للمكونات، فهو يعتمد على مفهوم Multi apps ضمن نفس المشروع؛ كما يوفر يوفر أجزاء جاهزة للمشاريع، مثل قسم التحقق Authentication الذي يجب أن يتوفر في كل مشروع ويب.

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

ما هو إطار العمل فلاسك Flask؟

فلاسك Flask هو إطار عمل صغير Micro Framework تم إنشاؤه في 2010, مع ذلك فهو يقدم الميزات الأساسية لتطبيق الويب.

يعتمد فلاسك كثيرًا على المكتبات الخارجية، ولايحتوي على معمارية محددة مثل MVC، مما يمنح مرونة في اختيار واستخدام الطريقة التي نريدها؛ كما لا يحتوي على ORM أساسي، ولكن يكفي استخدام مكتبات خارجية للقيام بوظيفة الـ ORM.

يُعَد إطار العمل فلاسك Flask مناسبًا جدًا للمبتدئين الراغبين في تعلم استخدام أول إطار عمل، نظرًا لبساطته وسهولة تعلمه مقارنةً مع باقي أطر العمل الشهيرة الأخرى.

الإختلافات الرئيسية بين جانغو وفلاسك

يمكن توضيح الاختلافات الرئيسية بين إطاري العمل جانغو وفلاسك في الجدول التالي:

الخاصية جانغو Django فلاسك Flask
دعم تعددية التطبيقات داخل المشروع إفتراضيًا يدعم تعدد التطبيقات إفتراضيًا و ذلك يجعل من السهل على المطور كتابة كود يمكن إعادة إستخدامه في العديد من المشاريع في فلاسك لا بد من تقسيم عناصر المشروع يدويًا دون تدخل إطار العمل مما يجعل كتابة كود قابل لإعادة الاستخدام أصعب نسبيًا
التعامل مع قواعد البيانات يوفر جانغو ORM جاهز للتعامل مع قواعد البيانات، لكن هذا ال ORM مخصص لقواعد البيانات نوع SQL مثل MySQL و SQLite لذا فالتعامل مع قواعد البيانات نوع NOSQL صعب بعض الشيء في جانغو التعامل مع قواعد البيانات من نوع NOSQL اسهل
سهولة التعلم إستخدام جانغو يتطلب خبرة مسبقة في تطوير مواقع وتطبيقات الويب أو للمتعلمين الجدد يتطلب وقت أطول للتعلم يُعَد أسهل بالتأكيد في التعلم لأي مطور يريد البدء بتعلم تطوير مواقع وتطبيقات الويب، لانه بسيط وسهل بالتعامل وبالتحديد في المشاريع الصغيرة

دعم المجتمع لكل من جانغو وفلاسك

بالنظر إلى موقع github نجد عدد نجوم التقييمات متقارب بين الإطارين؛ أما حسب موقع stackoverflow فنجد إنه يوجد أكثر من 300 ألف سؤال عن جانغو بينما يوجد حوالي 55 ألف سؤال فقط عن فلاسك، اما بالنظر الى موقع google trends نجد أن التقنيتين متقاربتين جدًا في البحث.

ومن خلال الإحصائيات المشار إليها، نجد أن كلا التقنيتين تحظى بدعم كبير جدًا من المجتمع لكن دعم جانغو أكبر من فلاسك بعض الشيء.

أشهر المشاريع المبنية باستخدام جانغو وفلاسك

سنذكر في الآتي أبرز المشاريع العالمية الضخمة التي تم بناؤها بإطاري العمل جانغو وفلاسك، وسنعرض بالبداية لنستعرض أشهر المشاريع المبنية بإطار العمل جانغو Django:

  • Instagram
  • Pinterest
  • Udemy
  • Coursera

أما إذا انتقلنا إلى أشهر المشاريع المبنية بفلاسك Flask، فنجد المشاريع العالمية الضخمة الآتية أيضًا:

  • Netflix
  • Lyft
  • Reddit
  • Zillow
  • MailGui

كيف أختار إطار العمل المناسب لي؟

يُعَد إن إطار العمل جانغو كما وضحنا سابقًا أصعب بالتعلم مقارنة مع فلاسك، لذا في حال لم تكن لدى الراغب في المفاضلة بينهما خبرة مسبقة بأحد أطر العمل في اللغات الأخرى مثل Laravel أو Ruby On Rails مثلًا، فيُنصح باختيار إطار العمل فلاسك، ومن ثم في حال الرغبة في الإنتقال إلى إطار العمل جانغو سوف يكون الأمر أسهل، لأنه سيكون قد تعلم أساسيات العمل إطار عمل خلال التعلم والعمل على فلاسك.

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

خاتمة

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

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



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

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

زائر
أضف تعليق

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


×
×
  • أضف...