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

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

جنگو (Django)
نویسنده(های) اصلیAdrian Holovaty,Simon Willison
توسعه‌دهنده(ها)Django Software Foundation
انتشار ابتدایی۲۱ ژوئیه ۲۰۰۵[1]
انتشار پایدار
۳٫۰٫۸
۱ ژوئیه ۲۰۲۰[2]
مخزن
نوشته‌شده باپایتون
سیستم‌عاملچندسکویی
حجم۸٫۶ مگابایت[3]
گونهچارچوب نرم‌افزاری تحت وب
پروانهاجازه‌نامه بی‌اس‌دی
وبگاه

از وب‌سایت‌های مشهوری که از جنگو استفاده می‌کنند می‌توان به پی‌بی‌اس،[8]اینستاگرام،[9]بنیاد موزیلا،[10]واشینگتن تایمز[11] اشاره کرد. جنگو همچنین در ساخت شبکه اجتماعی پینترست[12] استفاده شد اما بعداً، به فریم ورک فلسک انتقال یافت.

تاریخچه

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

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

امکانات

کامپوننت‌ها (اجزاء)

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

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

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

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

طبقه‌بندی وب سرور

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

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

تاریخچهٔ انتشار نسخه

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

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

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

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

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

انجمن

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

محل و تاریخ کنفرانس‌های برگزار شده 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. Archived from the original on 8 February 2012. 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". Archived from the original on 6 March 2016. 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.

پیوند به بیرون

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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.