جانغو (إطار عمل ويب)
جانغو (بالإنجليزية: Django؛ تنطق JANG-goh[8]) هو منصة برمجية لتطبيقات الإنترنت حر ومفتوح المصدر مكتوب بلغة البرمجة بايثون، والذي يتبع أسلوب تطوير نمط-قالب-عرض(بالإنجليزية: MVT: Model-Template-Views).[9] طُوّر أصلًا لإدارة مواقع إخبارية تديرها «شركة العالم» (بالإنجليزية: The World Company)[10] وأصدر للعموم في يوليو 2005 تحت رخصة بي إس دي.[11] في يونيو 2008 أعلن عن إنشاء مؤسسة برنامج جانغو التي ستتولى تطوير جانغو في المستقبل.[12]
جانغو
|
هدف جانغو الأساسي تسهيل إنشاء مواقع الوب المعقدة المعتمدة على قواعد البيانات. تركز المنصة على قابلية إعادة الاستخدام و قابلية التوصيل(Pluggability) للعناصر، زتكويد أقل، و خفض الاقتران، وتطوير سريع، ومبدأ لا تكرر نفسك.[13] تستعمل البايثون في كل المنصة حتى بالنسبة للإعدادات، الملفات وأنماط البيانات. وتوفر كذلك خيار استعمال واجهة إدارة قواعد البيانات (إنشاء - قراءة - تحديث - حذف)[14]
بعض المواقع المعروفة التي تستخدم جانغو بما فيها بي بي إس،[15] إنستغرام،[16] مؤسسة موزيلا،[17] واشنطن تايمز,[18] ديسكاس،[19] بيت باكيت ,[20] Nextdoor.[21] و بنترست[22]، الذي انتقل إلى استخدام فلاسك.
تاريخ
أنشأت جانغو في خريف 2003، حين بدأ عاملان (أدريان هولوفاتي و سيمون ويلسون) في جريدة لورانس جورنال-وورلد باستخدام لغة بايثون في بناء تطبيقات. تم توظيف جاكوب كابلان-موس في تطوير جانغو قبيل انتهاء فترة تدريب سيمون ويلسون.[23] تم نشرها تحت رخصة بي إس دي في يوليو 2005.[11]تم تسمية المنصة تيمنا بالجيتاريست الفرنسي جانغو راينهارت.[24]
في يونيو 2008 تم الإعلان عن إنشاء منظمة جانغو للبرمجيات (DSF: Django Software Foundation) والتي تعنى بتطوير والحفاظ على المنصة في المستقبل.[12]
المميزات
القطع (العناصر)
بالرغم من امتلاك المنصة نظام تسمية، مثل تسمية الكائنات التي تولد إستجابات اتش تي تي بي(عروض - Views)،[9] فإن قلب منصة جانغو يمكن أن يعتبر كمعمارية MVC.
تعمل جانغو بوجود ثلاثة عناصر أساسية:
- موجه علائقي للكائنات (ORM: Object Relational Mapper) والذي يكون وسيط بين أنماط بيانية المعرفة كفئات بايثون و قواعد البيانات العلائقية (النمط - Model).
- نظام معالجة طلبات اتش تي تي بي مع نظام قولبة ويب (عرض - View).
- مرسل محدد موقع الموارد مبني على أسلوب التعابير النمطية (متحكم - Controller).
كذلك يحتوي لب المنصة على أدوات أخرى:
- خادم ويب خفيف ومستقل بغرض البرمجة والتجريب.
- نظام تحويل ومصادقة للإستمارات، الذي يعمل على ترجمة استمارات اتش تي ام ال إلى قيم ملائمة للتخزين في قاعدة البيانات.
- نظام قولبة يستعمل مفهوم الوراثة المقترض من البرمجة الكائنية التوجه.
- منصة تخبأة التي تستعمل عدة أساليب للتخبأة.
- دعم لتصنيفات البرمجيات الوسيطة التي يمكنها التدخل في عدة مراحل من مراحل معالجة الطلبات، ومباشرة وظائف مخصصة.
- نظام إرسال داخلي الذي يسمح لمختلف عناصر البرنامج بالإتصال فيما بينها عن طريق إشارات معرفة مسبقا.
- نظام تدويل، يضم ترجمات عناصر جانغو إلى العديد من اللغات.
- نظام تحويل يمكنه إنشاء وقراءة إكس إم إل أو/و جايسون من حالات جانغو النموذجية (Model Instances).
- نظام لتوسيع قدرات محرك القوالب.
- واجهة لمنصة اختبارات الوحدة الأساسية في بايثون.
التطبيقات المحزمة
توزيعة جانغو الأساسية تحزم أيضا مجموعة من التطبيقات في رزمة (المساهمات - Contrib) من ضمنها:
- نظام مصادقة قابل للتوسعة.
- واجهة إدارة ديناميكية.
- أدوات لتوليد تلقيمات ويب لـ آر إس إس و أتوم.
- منصة لتشغيل عدة مواقع كل بمحتواه وتطبيقاته الخاصة تحت تعيينة جانغو واحدة.
- أدوات لتوليد خرائط المواقع.
- نظام مبني للتخفيف من عدة هجمات ويب مثل: تزوير الطلب عبر المواقع، برمجة عابرة للمواقع، كسر كلمات السر، حقن اس كيو ال. معظمها مفعل تلقائيا.[25][26]
- منصة لإنشاء تطبيقات نظم المعلومات جغرافية.
قابلية التمدد
يسمح نظام التهيئة في جانغو بتوصيل كود طرف ثالث في مشاريع جانغو الاعتيادية، شرط أن يتبع مفاهيم قابلية إعادة الاستخدام.[27] توجد أكثر من 3800 حزمة[28] ممتوفرة لتوسعة السلوك الأصلي للمنصة، توفير حلول لقضايا لم تتعامل معها الأدوات الأساسية: نظام التسجيلات، البحث، تقديم واسهلاك الواجهات برمجية، أنظمة إدارة المحتوى، وغيرها.
التطابق مع الخوادم
يمكن لجانغو العمل بالإشتراك مع آباتشي، انجينكس باستخدام ويزغي(واجهة بوابة خادم ويب، جي يونيكورن (Gunicorn) أو شيروكي باستعمال فلوب - flup (وحدة مكتبية من بايثون)[29]
تاريخ النسخ
يقوم فرق جانغو من فترة إلى فترة بتعيين إصدارات معينة كـ "دعم طويل الأمد".[30] ستحصل هذه الإصدارات على إصلاحات أمنية و بيانية مضمونة لمدة معينة من الزمن، في الغالب ثلاث سنوات، بغض النظر عن سرعة الإصدارات بعدها.
المجتمع
يوجد مؤتمر نصف سنوي لمطوري جانغو ومستخدميه يدعى "جانغوكون-DjangoCon" والذي تم إقامته منذ سبتمبر 2008. يتم اقامته سنويا في أوروبا في شهر ماي أو جوان، بالمقابل يقام آخر في الولايات المتحدة في أوت أو سبتمبر في مدن عديدة.
نقل إلى لغات برمجة أخرى
قام مبرمجون بنقل محرك جانغو للقوالب إلى عدة لغات برمجية أخرى، وبالتالي توفير دعم متعدد المنصات لا بأس به. بعضها يعتبر نقلا مباشرا وأخرى بالرغم من تأثرها بجانغو ومفاهيمها، إلا أنها أخذت الحرية في الخروج عن تصميم جانغو:
منصات إدارة محتوى مبنية على جانغو
منصة جانجو قادرة على بناء أنظمة إدارة محتوى كاملة، على كل حال يوجد مشاريع أنظمة إدارة محتوى مخصصة مبنية وموسعة لجانغو. هذه بعض أشهرها:
- جانغو سي ام اس - DjangoCMS.
- واغتايل - Wagtail.
- ميزانين - Mezzanine.
أنظر أيضا
مراجع
- مذكور في: جنو جويكس. معرف جنو جويكس: python-django. الوصول: 23 فبراير 2021.
- وصلة مرجع: http://www.djangobook.com/en/2.0/chapter01.html#django-s-history.
- الوصول: 8 يناير 2017. وصلة مرجع: https://api.github.com/repos/django/django.
- "The django Open Source Project on Open Hub: Languages Page"، أهلوه، اطلع عليه بتاريخ 18 يوليو 2018.
{{استشهاد ويب}}
: تحقق من التاريخ في:|access-date=
(مساعدة) - "Django 4.1 released"، 3 أغسطس 2022، اطلع عليه بتاريخ 3 أغسطس 2022.
{{استشهاد ويب}}
: تحقق من التاريخ في:|access-date=
و|date=
(مساعدة) - وصلة مرجع: https://github.com/django/django/blob/master/LICENSE. الوصول: 2 سبتمبر 2016.
- "The django Open Source Project on Open Hub: Licenses Page"، أهلوه، اطلع عليه بتاريخ 18 يوليو 2018.
{{استشهاد ويب}}
: تحقق من التاريخ في:|access-date=
(مساعدة) - What does “Django” mean, and how do you pronounce it? نسخة محفوظة 10 سبتمبر 2017 على موقع واي باك مشين.
- "FAQ: General | Django documentation | Django"، docs.djangoproject.com، مؤرشف من الأصل في 14 أغسطس 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- LJWorld.com / About us نسخة محفوظة 23 مايو 2017 على موقع واي باك مشين.
- "Django FAQ"، Lawrence Journal-World، مؤرشف من الأصل (HTML) في 20 يوليو 2006، اطلع عليه بتاريخ 01 أبريل 2008.
- Announcing the Django Software Foundation نسخة محفوظة 24 سبتمبر 2017 على موقع واي باك مشين.
- "Design philosophies | Django documentation | Django"، docs.djangoproject.com، مؤرشف من الأصل في 4 مايو 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "Django ORM"، www.fullstackpython.com (باللغة الإنجليزية)، مؤرشف من الأصل في 17 أغسطس 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "20 Creative Websites Running Django"، مؤرشف من الأصل في 14 يونيو 2013.
- "What Powers Instagram: Hundreds of Instances, Dozens of Technologies"، مؤرشف من الأصل في 6 أكتوبر 2014.
- "Python"، Mozilla Developer Network، مؤرشف من الأصل في 8 فبراير 2012، اطلع عليه بتاريخ 30 أبريل 2016.
- Opensource.washingtontimes.com. Retrieved on 2014-05-30. نسخة محفوظة 15 مارس 2016 على موقع واي باك مشين.
- "Scaling Django to 8 Billion Page Views"، مؤرشف من الأصل في 13 أبريل 2016.
- "DjangoSuccessStoryBitbucket – Django"، مؤرشف من الأصل في 20 أبريل 2016، اطلع عليه بتاريخ 30 أبريل 2016.
- "The anti-Facebook: one in four American neighborhoods are now using this private social network"، The Verge، مؤرشف من الأصل في 21 ديسمبر 2018، اطلع عليه بتاريخ 16 يونيو 2016.
- "What is the technology stack behind Pinterest?"، اطلع عليه بتاريخ 30 أبريل 2016.
- "What is the history of the Django web framework? Why has it been described as "developed in a newsroom"?"، Quora (باللغة الإنجليزية)، اطلع عليه بتاريخ 20 أغسطس 2022.
- "FAQ: General | Django documentation | Django"، docs.djangoproject.com، مؤرشف من الأصل في 14 أغسطس 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "Security in Django | Django documentation | Django"، docs.djangoproject.com، مؤرشف من الأصل في 14 مايو 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "Best Basic Security Practices (Especially with Django)"، Coffee on the Keyboard (باللغة الإنجليزية)، 17 يوليو 2012، مؤرشف من الأصل في 15 مارس 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "What is a reusable app? — django-reusable-app-docs 0.1.0 documentation"، django-reusable-app-docs.readthedocs.io، مؤرشف من الأصل في 28 مارس 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "Django Packages : Reusable apps, sites and tools directory"، djangopackages.org، مؤرشف من الأصل في 3 أغسطس 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "Cherokee Web Server | Cookbook Setting up Django | Cherokee Documentation"، cherokee-project.com، مؤرشف من الأصل في 8 أبريل 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
- "Django's release process | Django documentation | Django"، docs.djangoproject.com، مؤرشف من الأصل في 10 يوليو 2022، اطلع عليه بتاريخ 20 أغسطس 2022.
وصلات خارجية
- جانغو على موقع Open Hub (الإنجليزية)
- جانغو على موقع Free Software Directory (الإنجليزية)
- صفحة مشروع جانغو الرئيسية
- بوابة برمجيات حرة
- بوابة برمجة الحاسوب
- بوابة برمجيات