جنگو (چارچوب نرم‌افزاری)

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو
جنگو (Django)
Django logo.svg
Django 2.1 landing page.png
نویسنده (های) اصلیAdrian Holovaty,Simon Willison
توسعه‌دهنده(ها)Django Software Foundation
انتشار ابتدایی۲۱ ژوئیه ۲۰۰۵[۱]
انتشار پایدار۲٫۲٫۶ / ۱ اکتبر ۲۰۱۹[۲]
نوشته‌شده بهپایتون
سیستم‌عاملچندسکویی
حجم۸٫۶ مگابایت[۳]
گونهچارچوب نرم‌افزاری تحت وب
پروانهاجازه‌نامه بی‌اس‌دی
وبگاهوبسایت رسمی جنگو

جنگو (به انگلیسی: Django)[۴] یک چارچوب نرم‌افزاری تحت وب آزاد و متن‌باز است که به زبان پایتون نوشته شده‌است و از معماری مدل-نما-کنترل‌گر (به انگلیسی: Model–View–Template) پیروی می‌کند.[۵][۶] هدف اصلی جنگو ساخت آسان سایت‌های پیچیده و وابسته به دیتابیس است و بر پایهٔ قابلیت استفادهٔ مجدد و قابل اتصال بودن اجزای مختلف، توسعهٔ سریع و اصل خودت را تکرار نکن (DRY) طراحی شده‌است.[۷] جنگو سراسر از پایتون استفاده می‌کند، حتی برای تنظیمات، فایل‌ها و مدل‌های اطلاعات.

از وب سایت‌های مشهوری که از جنگو استفاده می‌کنند می‌توان به پی‌بی‌اس،[۸]اینستاگرام،[۹]بنیاد موزیلا،[۱۰]واشینگتن تایمز[۱۱] اشاره کرد. جنگو همچنین در ساخت شبکه اجتماعی پینترست[۱۲] استفاده شد اما بعداً، به فریم ورک فلسک انتقال یافت.

تاریخچه[ویرایش]

جنگو در پاییز سال ۲۰۰۳ توسط Simon Willison و Adrian Holovaty در حین ایجاد برنامه در شرکت Lawrence Journal-World متولد شد. سپس در سال ۲۰۰۵ تحت اجازه‌نامه بی‌اس‌دی منتشر شد.[۱۳] نام جنگو از جنگو راینهارت، نوازندهٔ گیتار جاز گرفته شده‌است.[۱۴]

در ژوئن سال ۲۰۰۸، بنیاد نرم‌افزاری Django Software Foundation (DSF) برای توسعه و حفظ جنگو شکل گرفت.[۱۵]

امکانات[ویرایش]

کامپوننت‌ها (اجزاء)[ویرایش]

هسته اصلی جنگو با استفاده از معماری مدل-نما-کنترل‌گر(MVC)[۶] تشکیل شده‌است که شامل، پایگاه داده رابطه ای(Model)، سیستمی برای پردازش درخواست‌های HTTP با استفاده از Web template system(View)، و یک توزیع کننده (Controller) نشانی وب (URL) برپایه عبارت با قاعده (Regular expression) می‌شود. همچنین در هسته فریم ورک جنگو امکانات زیر گنجانده شده:

  • وب سرور مستقل و داخلی برای توسعه و تست سریع برنامه
  • قابلیت اعتبارسنجی و ترتیب بندی، برای انتقال و ذخیره‌سازی اطلاعات فرم‌های اچ‌تی‌ام‌ال در پایگاه داده
  • سیستم قالب بندی صفحات با استفاده از مفهوم ارث بری که از برنامه‌نویسی شیءگرا الهام گرفته شده
  • پشتیبانی از کلاس‌های میان‌افزار که با استفاده از آن می‌توان توابع سفارشی برای پردازش درخواست‌های مراحل مختلف برنامه استفاده کرد
  • ابزاری برای بین‌المللی‌سازی و محلی‌سازی کامپوننت‌های جنگو به انواع زبان‌های برنامه‌نویسی دیگر
  • ابزاری برای خواندن زبان نشانه گذاری اکس‌ام‌ال یا نمایش جیسون از مدل‌های جنگو
  • ابزارهایی برای توسعه و گسترش موتور قالب بندی صفحات
  • استفاده از ابزار قدرتمند و انعطاف‌پذیر Django REST framework برای ساخت رابط برنامه‌نویسی کاربردی(API) وب

نرم‌افزارهای بسته‌بندی شده[ویرایش]

در توزیع اصلی جنگو تعداد زیادی بسته‌های نرم‌افزاری وجود دارد که شامل:

طبقه‌بندی وب سرور[ویرایش]

جنگو می‌تواند به راحتی با استفاده از وب سرورهایی همچون آپاچی، انجین‌اکس با به کار بردن واسط دروازه کارساز وب(WSGI)، گونیکورن (سرور HTTP)، و یا، Cherokee اجرا شود.[۱۶][۱۷] همچنین جنگو، به‌طور رسمی، از چهار پایگاه داده بک اند از جمله: پستگرس‌کیوال، مای‌اس‌کیوال، اس‌کیوال لایت
و پایگاه داده اوراکل پشتیبانی می‌کند. برای استفاده از نواس‌کیوال در جنگو، انشعاب (توسعه نرم‌افزار) ای به نام django-nonrel به وجود آمده که امکان پشتیبانی از پایگاه داده‌هایی همچون مانگودی‌بی و گوگل اپ انجین را فراهم کرده‌است.[۱۸]

جنگو می‌تواند با استفاده از جایتون بر بستر برنامه‌های سمت سرور مبتنی بر سکوی جاوا، نسخه سازمانی(Java EE) مانند WildFly یا GlassFish استفاده شود که برای اجرای آن، نیاز به نصب django-jython که اتصال به پایگاه داده را ممکن می‌کند نیاز است.[۱۹]

تاریخچه انتشار نسخه[ویرایش]

گهگاه تیم جنگو، نسخه‌های خاصی از برنامه را با عنوان پشتیبانی بلند مدت[۲۰] (LTS) منتشر می‌کند. همچنین نسخه LTS به‌طور معمول تا سه سال یا بیشتر، به‌روزرسانی‌های امنیتی و اصلاحات برنامه را دریافت می‌کند.

راهنمای جدول
رنگ‌ها رنگ قرمز: نسخه قدیمی، رنگ سبز: نسخه به‌روز و پایدار، رنگ آبی: انتشار در آینده نزدیک، رنگ پژ: نسخه پایدار، هنوز پشتیبانی می‌شود.
تاریخچه انتشار نسخه‌های جنگو تا به امروز:
نسخه‌ها تاریخ[۲۱] یادداشت[۲۲]
۰٫۹۰[۲۳] ۱۶ نوامبر ۲۰۰۵ First release
۰٫۹۱[۲۴] ۱۱ ژوئن ۲۰۰۶ "new admin"
۰٫۹۵[۲۵] ۲۹ ژوئیه ۲۰۰۶ "magic removal"
۰٫۹۶[۲۶] ۲۳ مارس ۲۰۰۷ "newforms", testing tools
۱٫۰[۲۷] ۳ سپتامبر ۲۰۰۸ API stability, decoupled admin, unicode
۱٫۱[۲۸] ۲۹ ژوئیه ۲۰۰۹ Aggregates, transaction based tests
۱٫۲[۲۹] ۱۷ مه ۲۰۱۰ Multiple db connections, CSRF, model validation
۱٫۳[۳۰] ۲۳ مارس ۲۰۱۱ Class based views, staticfiles
۱٫۴ پشتیبانی بلندمدت (LTS[۳۱]) ۲۳ مارس ۲۰۱۲ Timezones, in browser testing, app templates
۱٫۵[۳۲] ۲۳ فوریه ۲۰۱۳ Python 3 Support, configurable user model
۱٫۶[۳۳] ۶ نوامبر ۲۰۱۳ Dedicated to Malcolm Tredinnick, db transaction management, connection pooling
۱٫۷[۳۴] ۲ سپتامبر ۲۰۱۴ Migrations, application loading and configuration
۱٫۸ پشتیبانی بلندمدت (LTS)[۳۵] ۱ آوریل ۲۰۱۵ Native support for multiple template engines. Supported until at least April 2018
۱٫۹[۳۶] ۱ دسامبر ۲۰۱۵ Automatic password validation. New styling for admin interface.
۱٫۱۰[۳۷] ۱ اوت ۲۰۱۶ Full text search for PostgreSQL. New-style middleware.
۱٫۱۱ پشتیبانی بلندمدت (LTS)[۳۸] ۴ آوریل ۲۰۱۷ Last version to support Python 2.7. Supported until at least April 2020
۲٫۰[۳۹] ۲ دسامبر ۲۰۱۷ First Python 3-only release, Simplified URL routing syntax, Mobile friendly admin
۲٫۱[۴۰] ۱ اوت ۲۰۱۸ Model "view" permission
۲٫۲ پشتیبانی بلندمدت (LTS)[۴۱] آوریل ۲۰۱۹ Security release. Supported until at least April 2022
۳٫۰[۴۲] ۲ دسامبر ۲۰۱۹
۳٫۱[۴۳] دسامبر ۲۰۱۹
۳٫۲(LTS)[۴۳] آوریل ۲۰۲۱ Supported until at least April 2024

پشتیبانی جنگو از ابزارهای توسعه[ویرایش]

برای توسعه دادن پروژه جنگو خود، هیچ نیاز به ابزار خاصی ندارید و می‌توانید با استفاده از ویرایش‌گر متن‌های مرسوم کد منبع خود را توسعه دهید. با این حال ویرایش‌گر متن‌هایی به‌طور مخصوص برای برنامه‌نویسی طراحی شده‌اند که قابلیت‌هایی همچون برجسته‌سازی نحو را دارا هستند. با توجه به اینکه جنگو با استفاده از زبان پایتون نوشته می‌شود، استفاده ازویرایش‌گر متن‌هایی که از نحوه نوشتار پایتون پشتیبانی می‌کنند می‌تواند مفید باشد.

با استفاده از محیط یکپارچه توسعه نرم‌افزار(IDE) می‌توانید قابلیت‌هایی مانند اشکال‌زدایی و بازسازی کد را حین توسعه برنامه خود استفاده کنید. همانند ویرایش‌گر متن ساده، محیط یکپارچه توسعه نرم‌افزار(IDE) که از پایتون پشتیبانی می‌کنند هم می‌توانند برای توسعه مفید باشند. مقاله مرجع این مطلب رو ببینید:

انجمن[ویرایش]

از سپتامبر سال ۲۰۰۸ تا به امروز، هر نیم‌سال کنفرانسی به نام «DjangoCon» برای توسعه دهندگان جنگو و کاربران آن برگزار می‌شود. همچنین کنفرانس «DjangoCon» سالیانه در ماه مه و ژوئن در اروپا[۴۴] و به‌طور مشابه، در اوت و سپتامبر در شهرهای مختلف آمریکا برگزار می‌شود.[۴۵]

محل و تاریخ کنفرانس‌های برگزار شده DjangoCon تا به امروز:

تبدیل به زبان‌های برنامه‌نویسی دیگر[ویرایش]

برنامه نویسان، قالب الگوی جنگو را از پایتون به زبان‌های برنامه‌نویسی دیگر تبدیل کرده و از قابلیت چندسکویی نیز پشتیبانی می‌کنند. برخی از این موارد تبدیل‌های مستقیم از جنگو هستند اما برخی دیگر، اگرچه از مفاهیم جنگو الهام گرفته‌اند اما آزادی عمل برای تغیر دادن از ماهیت جنگو در آن‌ها هموار شده‌است:

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. "Django FAQ". Retrieved 27 March 2019.
  2. https://github.com/django/django/releases
  3. "Django Download". Retrieved 27 March 2019.
  4. "FAQ: General - Django documentation - Django". Retrieved 30 April 2016.
  5. "FAQ: General - Django documentation - Django". Retrieved 30 April 2016.
  6. ۶٫۰ ۶٫۱ Adrian Holovaty, Jacob Kaplan-Moss; et al. The Django Book. Archived from the original on 2 September 2016. Retrieved 11 October 2019. Django follows this MVC pattern closely enough that it can be called an MVC framework
  7. "Design Philosophies". Django. Retrieved 18 March 2018.
  8. "20 Creative Websites Running Django".
  9. "What Powers Instagram: Hundreds of Instances, Dozens of Technologies".
  10. "Python". Mozilla Developer Network. Retrieved 30 April 2016.
  11. Opensource.washingtontimes.com. Retrieved on 2014-05-30.
  12. "What is the technology stack behind Pinterest?". Retrieved 30 April 2016.
  13. «LJWorld.com / About us». دریافت‌شده در ۱۲ فروردین ۱۳۹۰.
  14. «Django FAQ». دریافت‌شده در ۱۲ مهر ۱۳۹۵.
  15. "Announcing the Django Software Foundation - Weblog - Django". Retrieved 30 April 2016.
  16. Django documentation of deployment بایگانی‌شده در ۱۱ ژانویه ۲۰۱۲ توسط Wayback Machine
  17. "Cherokee Web Server - Cookbook Setting up Django - Cherokee Documentation". Retrieved 30 April 2016.
  18. "Django non-rel". Retrieved 30 April 2016.
  19. beachmachine. "GitHub - beachmachine/django-jython: Database backends and extensions for Django development on top of Jython". GitHub. Retrieved 30 April 2016.
  20. "Django's release process - Django documentation - Django". Retrieved 30 April 2016.
  21. "Download Django - Django". www.djangoproject.com.
  22. "FAQ: Installation - Django documentation - Django". docs.djangoproject.com.
  23. "Introducing Django 0.90". Django weblog. Retrieved 2 February 2013.
  24. "Django 0.91 released". Django weblog. Retrieved 2 February 2013.
  25. "Introducing Django 0.95". Django weblog. Retrieved 2 February 2013.
  26. "Announcing Django 0.96!". Django weblog. Retrieved 2 February 2013.
  27. "Django 1.0 released!". Django weblog. Retrieved 2 February 2013.
  28. "Django 1.1 released". Django weblog. Retrieved 2 February 2013.
  29. "Django 1.2 released". Django weblog. Retrieved 2 February 2013.
  30. "Django 1.3 released". Django weblog. Retrieved 2 February 2013.
  31. "Django 1.4 released". Django weblog. Retrieved 2 February 2013.
  32. "Django 1.5 released" Django weblog. Retrieved 27 February 2013.
  33. "Django 1.6 released" Django weblog. Retrieved 6 November 2013.
  34. "Django 1.7 released" Django weblog. Retrieved 4 September 2014.
  35. "Django 1.8 released" Django weblog. Retrieved 2 April 2015.
  36. "Django 1.9 released" Django weblog. Retrieved 1 December 2015.
  37. "Django 1.10 released" Django weblog. Retrieved 1 August 2016.
  38. "Django 1.11 released" Django weblog. Retrieved 4 April 2017.
  39. "Django 2.0 released" Django weblog. Retrieved 3 December 2017.
  40. "Django 2.1 released" Django weblog. Retrieved 2 August 2018.
  41. Django 2.2.3 release notes Retrieved 1 July 2019.
  42. [۱] retrived 2 December 2019.
  43. ۴۳٫۰ ۴۳٫۱ Download Django
  44. DjangoCon EU series بایگانی‌شده در ۴ مارس ۲۰۱۶ توسط Wayback Machine, Lanyrd.com
  45. DjangoCon US series بایگانی‌شده در ۲ آوریل ۲۰۱۶ توسط Wayback Machine, Lanyrd.com
  46. "DjangoCon". DjangoCon. Archived from the original on 5 August 2012. Retrieved 29 July 2012.
  47. "DjangoCon". DjangoCon.
  48. "DjangoCon". DjangoCon.
  49. "DjangoCon". DjangoCon.
  50. Shopify. "– Liquid template language". Liquid template language.
  51. "Template::Swig - Perl interface to Django-inspired Swig templating engine. - metacpan.org". metacpan.org.
  52. Symfony. "Home - Twig - The flexible, fast, and secure PHP template engine". twig.sensiolabs.org.
  53. "twigjs/twig.js". GitHub.
  54. "Welcome - Jinja2 (The Python Template Engine)". jinja.pocoo.org.
  55. "erlydtl/erlydtl". GitHub.

پیوند به بیرون[ویرایش]

وبسایت رسمی جنگو