جانغو (إطار عمل ويب)
نوع | |
---|---|
سمي باسم | |
نظام التشغيل | |
النموذج المصدري |
حقوق التأليف والنشر محفوظة [لغات أخرى] |
المطور الأصلي | |
المطورون |
Django Software Foundation [لغات أخرى] |
موقع الويب |
أدوات الواجهة أو إطار العمل |
واجهة مستخدم الويب [لغات أخرى] |
---|---|
لغة البرمجة | |
الإصدار الأول |
2025 [2] |
الإصدار الأخير |
|
المستودع | |
الرخصة |
جانغو (بالإنجليزية: 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. يتم اقامته سنويا في أوروبا في شهر ماي أو جوان، بالمقابل يقام آخر في الولايات المتحدة في أوت أو سبتمبر في مدن عديدة.
نقل إلى لغات برمجة أخرى
قام مبرمجون بنقل محرك جانغو للقوالب إلى عدة لغات برمجية أخرى، وبالتالي توفير دعم متعدد المنصات لا بأس به. بعضها يعتبر نقلا مباشرا وأخرى بالرغم من تأثرها بجانغو ومفاهيمها، إلا أنها أخذت الحرية في الخروج عن تصميم جانغو:
- ليكويد - Liquid: لغة البرمجة روبي.
- تمبلايت:: سويغ - Template::Swig: لغة البرجمة بيرل.
- تويغ - Twig: لغة البرمجة بي اتش بي وجافاسكريبت.
- جينجا - Jinja: للغة بايثون.
- إرلي دي تي ال - ErlyDTL: لإرلانج
منصات إدارة محتوى مبنية على جانغو
منصة جانجو قادرة على بناء أنظمة إدارة محتوى كاملة، على كل حال يوجد مشاريع أنظمة إدارة محتوى مخصصة مبنية وموسعة لجانغو. هذه بعض أشهرها:
- جانغو سي ام اس - DjangoCMS.
- واغتايل - Wagtail.
- ميزانين - Mezzanine.
أنظر أيضا
مراجع
- ↑ مذكور في: جنو جيكس. معرف جنو جيكس: python-django. الوصول: 6 أبريل 2025.
- ↑ 2٫0 2٫1 وصلة مرجع: http://www.djangobook.com/en/2.0/chapter01.html#django-s-history.
- ↑ 3٫0 3٫1 الوصول: 6 أبريل 2025. وصلة مرجع: https://api.github.com/repos/django/django.
- ↑ "The django Open Source Project on Open Hub: Languages Page". أهلوه. اطلع عليه بتاريخ 6 أبريل 2025.
{{استشهاد ويب}}
: تحقق من التاريخ في:|access-date=
(مساعدة) - ↑ 5٫0 5٫1 "Release 5.1.6". 6 أبريل 2025. اطلع عليه بتاريخ 6 أبريل 2025.
{{استشهاد ويب}}
: تحقق من التاريخ في:|access-date=
(مساعدة) - ↑ وصلة مرجع: https://github.com/django/django/blob/master/LICENSE. الوصول: 6 أبريل 2025.
- ↑ "The django Open Source Project on Open Hub: Licenses Page". أهلوه. اطلع عليه بتاريخ 6 أبريل 2025.
{{استشهاد ويب}}
: تحقق من التاريخ في:|access-date=
(مساعدة) - ↑ What does “Django” mean, and how do you pronounce it? نسخة محفوظة 10 سبتمبر 2017 على موقع واي باك مشين.
- ↑ 9٫0 9٫1 "FAQ: General | Django documentation | Django". docs.djangoproject.com. مؤرشف من الأصل في 14 أغسطس 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ LJWorld.com / About us نسخة محفوظة 23 مايو 2017 على موقع واي باك مشين.
- ↑ 11٫0 11٫1 "Django FAQ". Lawrence Journal-World. مؤرشف من الأصل (HTML) في 20 يوليو 2006. اطلع عليه بتاريخ 2008-04-01.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ 12٫0 12٫1 Announcing the Django Software Foundation نسخة محفوظة 24 سبتمبر 2017 على موقع واي باك مشين.
- ↑ "Design philosophies | Django documentation | Django". docs.djangoproject.com. مؤرشف من الأصل في 4 مايو 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "Django ORM". www.fullstackpython.com (بEnglish). Archived from the original on 17 أغسطس 2022. Retrieved 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(help) - ↑ "20 Creative Websites Running Django". مؤرشف من الأصل في 2013-06-14.
- ↑ "What Powers Instagram: Hundreds of Instances, Dozens of Technologies". مؤرشف من الأصل في 2014-10-06.
- ↑ "Python". Mozilla Developer Network. مؤرشف من الأصل في 8 فبراير 2012. اطلع عليه بتاريخ 30 April 2016.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ Opensource.washingtontimes.com. Retrieved on 2014-05-30. نسخة محفوظة 15 مارس 2016 على موقع واي باك مشين.
- ↑ "Scaling Django to 8 Billion Page Views". مؤرشف من الأصل في 2016-04-13.
- ↑ "DjangoSuccessStoryBitbucket – Django". مؤرشف من الأصل في 20 أبريل 2016. اطلع عليه بتاريخ 30 April 2016.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "The anti-Facebook: one in four American neighborhoods are now using this private social network". The Verge. مؤرشف من الأصل في 21 ديسمبر 2018. اطلع عليه بتاريخ 16 June 2016.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "What is the technology stack behind Pinterest?". مؤرشف من الأصل في 2023-07-11. اطلع عليه بتاريخ 30 April 2016.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "What is the history of the Django web framework? Why has it been described as "developed in a newsroom"?". Quora (بEnglish). Archived from the original on 2023-07-11. Retrieved 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(help) - ↑ "FAQ: General | Django documentation | Django". docs.djangoproject.com. مؤرشف من الأصل في 14 أغسطس 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "Security in Django | Django documentation | Django". docs.djangoproject.com. مؤرشف من الأصل في 14 مايو 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "Best Basic Security Practices (Especially with Django)". Coffee on the Keyboard (بEnglish). 2012-07-17. Archived from the original on 15 مارس 2022. Retrieved 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(help) - ↑ "What is a reusable app? — django-reusable-app-docs 0.1.0 documentation". django-reusable-app-docs.readthedocs.io. مؤرشف من الأصل في 28 مارس 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "Django Packages : Reusable apps, sites and tools directory". djangopackages.org. مؤرشف من الأصل في 3 أغسطس 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "Cherokee Web Server | Cookbook Setting up Django | Cherokee Documentation". cherokee-project.com. مؤرشف من الأصل في 8 أبريل 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ↑ "Django's release process | Django documentation | Django". docs.djangoproject.com. مؤرشف من الأصل في 10 يوليو 2022. اطلع عليه بتاريخ 2022-08-20.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة)
وصلات خارجية
- جانغو على موقع Open Hub (English)
- جانغو على موقع Free Software Directory (English)
- صفحة مشروع جانغو الرئيسية