جانغو (إطار عمل ويب)

**جانغو**  هو منصة برمجية لتطبيقات الإنترنت حر ومفتوح المصدر مكتوب بلغة البرمجة بايثون، والذي يتبع أسلوب تطوير نمط-قالب-عرض (بالإنجليزية: MVT: Model-Template-Views). طُوّر أصلًا لإدارة مواقع إخبارية تديرها «شركة العالم»  وأصدر للعموم في يوليو 2005 تحت رخصة بي إس دي. في يونيو 2008 أعلن عن إنشاء مؤسسة برنامج جانغو التي ستتولى تطوير جانغو في المستقبل.

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

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

## تاريخ
أنشأت جانغو في خريف 2003، حين بدأ عاملان (أدريان هولوفاتي وسيمون ويلسون) في جريدة لورانس جورنال-وورلد باستخدام لغة بايثون في بناء تطبيقات. تم توظيف جاكوب كابلان-موس في تطوير جانغو قبيل انتهاء فترة تدريب سيمون ويلسون. تم نشرها تحت رخصة بي إس دي في يوليو 2005. تم تسمية المنصة تيمنا بالجيتاريست الفرنسي جانغو راينهارت.

في يونيو 2008 تم الإعلان عن إنشاء منظمة جانغو للبرمجيات (DSF: Django Software Foundation) والتي تعنى بتطوير والحفاظ على المنصة في المستقبل.

## المميزات

### القطع (العناصر)
بالرغم من امتلاك المنصة نظام تسمية، مثل تسمية الكائنات التي تولد إستجابات اتش تي تي بي(عروض - Views)، فإن قلب منصة جانغو يمكن أن يعتبر كمعمارية MVC.

تعمل جانغو بوجود ثلاثة عناصر أساسية:

* موجه علائقي للكائنات (ORM: Object Relational Mapper) والذي يكون وسيط بين أنماط بيانية المعرفة كفئات بايثون وقواعد البيانات العلائقية (النمط - Model).
* نظام معالجة طلبات اتش تي تي بي مع نظام قولبة ويب (عرض - View).
* مرسل محدد موقع الموارد مبني على أسلوب التعابير النمطية (متحكم - Controller).

كذلك يحتوي لب المنصة على أدوات أخرى:

* خادم ويب خفيف ومستقل بغرض البرمجة والتجريب.
* نظام تحويل ومصادقة للإستمارات، الذي يعمل على ترجمة استمارات اتش تي ام ال إلى قيم ملائمة للتخزين في قاعدة البيانات.
* نظام قولبة يستعمل مفهوم الوراثة المقترض من البرمجة الكائنية التوجه.
* منصة تخبأة التي تستعمل عدة أساليب للتخبأة.
* دعم لتصنيفات البرمجيات الوسيطة التي يمكنها التدخل في عدة مراحل من مراحل معالجة الطلبات، ومباشرة وظائف مخصصة.
* نظام إرسال داخلي الذي يسمح لمختلف عناصر البرنامج بالإتصال فيما بينها عن طريق إشارات معرفة مسبقا.
* نظام تدويل، يضم ترجمات عناصر جانغو إلى العديد من اللغات.
* نظام تحويل يمكنه إنشاء وقراءة إكس إم إل أو/و جايسون من حالات جانغو النموذجية (Model Instances).
* نظام لتوسيع قدرات محرك القوالب.
* واجهة لمنصة اختبارات الوحدة الأساسية في بايثون.

### التطبيقات المحزمة
توزيعة جانغو الأساسية تحزم أيضا مجموعة من التطبيقات في رزمة (المساهمات - Contrib) من ضمنها:

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

### قابلية التمدد
يسمح نظام التهيئة في جانغو بتوصيل كود طرف ثالث في مشاريع جانغو الاعتيادية، شرط أن يتبع مفاهيم قابلية إعادة الاستخدام. توجد أكثر من 3800 حزمة ممتوفرة لتوسعة السلوك الأصلي للمنصة، توفير حلول لقضايا لم تتعامل معها الأدوات الأساسية: نظام التسجيلات، البحث، تقديم واسهلاك الواجهات برمجية، أنظمة إدارة المحتوى، وغيرها.

### التطابق مع الخوادم
يمكن لجانغو العمل بالإشتراك مع آباتشي، انجينكس باستخدام ويزغي (واجهة بوابة خادم ويب، جي يونيكورن (Gunicorn) أو شيروكي باستعمال فلوب - flup (وحدة مكتبية من بايثون)

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

## تاريخ النسخ
يقوم فرق جانغو من فترة إلى فترة بتعيين إصدارات معينة كـ «دعم طويل الأمد». ستحصل هذه الإصدارات على إصلاحات أمنية وبيانية مضمونة لمدة معينة من الزمن، في الغالب ثلاث سنوات، بغض النظر عن سرعة الإصدارات بعدها.

## المجتمع
يوجد مؤتمر نصف سنوي لمطوري جانغو ومستخدميه يدعى «جانغوكون-DjangoCon» والذي تم إقامته منذ سبتمبر 2008. يتم اقامته سنويا في أوروبا في شهر ماي أو جوان، بالمقابل يقام آخر في الولايات المتحدة في أوت أو سبتمبر في مدن عديدة.

## [[نقل (حوسبة)|نقل]] إلى لغات برمجة أخرى
قام مبرمجون بنقل محرك جانغو للقوالب إلى عدة لغات برمجية أخرى، وبالتالي توفير دعم متعدد المنصات لا بأس به. بعضها يعتبر نقلا مباشرا وأخرى بالرغم من تأثرها بجانغو ومفاهيمها، إلا أنها أخذت الحرية في الخروج عن تصميم جانغو:

* ليكويد - Liquid: لغة البرمجة روبي.
* تمبلايت:: سويغ - Template::Swig: لغة البرجمة بيرل.
* تويغ - Twig: لغة البرمجة بي اتش بي وجافاسكريبت.
* جينجا - Jinja: للغة بايثون.
* إرلي دي تي ال - ErlyDTL: لإرلانج

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

* جانغو سي ام اس - DjangoCMS.
* واغتايل - Wagtail.
* ميزانين - Mezzanine.

## انظر أيضا

* باي لونز
* روبي أون ريلز
* ويب-تو-باي
* فلاسك
* بوتل

## مراجع

## وصلات خارجية

* 
* 

تصنيف:أدوات برمجة
تصنيف:أطر عمل الويب
تصنيف:أطر عمل الويب الخاصة ببايثون
تصنيف:بايثون (لغة برمجة)
تصنيف:برمجيات تسخدم رخصة بي إس دي
تصنيف:برمجيات حرة
تصنيف:برمجيات حرة بلغة بايثون