جنگو (چارچوب نرمافزاری)
فریمورک وب پایتون From Wikipedia, the free encyclopedia
فریمورک وب پایتون From Wikipedia, the free encyclopedia
جنگو (به انگلیسی: Django)[2] یک چارچوب نرمافزاری تحت وب آزاد و متنباز است که به زبان پایتون نوشته شدهاست و از معماری مدل-نما-قالب (به انگلیسی: Model–View–Template) پیروی میکند.[3][4] هدف اصلی جنگو ساخت آسان سایتهای پیچیده و وابسته به دیتابیس است و بر پایهٔ قابلیت استفادهٔ مجدد و قابل اتصال بودن اجزای مختلف، توسعهٔ سریع و اصل خودت را تکرار نکن (DRY) طراحی شدهاست.[5] جنگو سراسر از پایتون استفاده میکند، حتی برای تنظیمات، فایلها و مدلهای اطلاعات.
![]() | |
![]() | |
نویسنده(های) اصلی | Adrian Holovaty,Simon Willison |
---|---|
توسعهدهنده(ها) | Django Software Foundation |
مخزن | |
سیستمعامل | چندسکویی |
حجم | ۸٫۶ مگابایت[1] |
مجوز | اجازهنامه بیاسدی |
وبگاه |
از وبسایتهای مشهوری که از جنگو استفاده میکنند میتوان به پیبیاس،[6]اینستاگرام،[7]بنیاد موزیلا،[8]واشینگتن تایمز[9] اشاره کرد. جنگو همچنین در ساخت شبکه اجتماعی پینترست[10] استفاده شد اما بعداً، به فریم ورک فلسک انتقال یافت.
جنگو در پاییز سال ۲۰۰۳ توسط Simon Willison و Adrian Holovaty در حین ایجاد برنامه در شرکت Lawrence Journal-World متولد شد. سپس در سال ۲۰۰۵ تحت اجازهنامه بیاسدی منتشر شد.[11] نام جنگو از جنگو راینهارت، نوازندهٔ گیتار جاز گرفته شدهاست.[12]
در ژوئن سال ۲۰۰۸، بنیاد نرمافزاری Django Software Foundation (DSF) برای توسعه و حفظ جنگو شکل گرفت.[13]
هسته اصلی جنگو مبتنی بر معماری MVT است که شامل Model برای ارتباط با پایگاه داده، View و Template است.
همچنین در هسته فریم ورک جنگو امکانات زیر گنجانده شده:
در توزیع اصلی جنگو تعداد زیادی بستههای نرمافزاری وجود دارد که شامل:
جنگو میتواند به راحتی با استفاده از وب سرورهایی همچون آپاچی، انجیناکس با به کار بردن واسط دروازه کارساز وب(WSGI)، گونیکورن (سرور HTTP)، و یا، Cherokee اجرا شود.[14][15]
همچنین جنگو، بهطور رسمی، از چهار پایگاه داده بک اند از جمله: پستگرسکیوال، مایاسکیوال، اسکیوال لایت
و پایگاه داده اوراکل پشتیبانی میکند.
برای استفاده از نواسکیوال در جنگو، انشعاب (توسعه نرمافزار) ای به نام django-nonrel بهوجود آمده که امکان پشتیبانی از پایگاه دادههایی همچون مانگودیبی و گوگل اپ انجین را فراهم کردهاست.[16]
جنگو میتواند با استفاده از جایتون بر بستر برنامههای سمت سرور مبتنی بر سکوی جاوا، نسخه سازمانی(Java EE) مانند WildFly یا GlassFish استفاده شود که برای اجرای آن، نیاز به نصب django-jython که اتصال به پایگاه داده را ممکن میکند نیاز است.[17]
گهگاه تیم جنگو، نسخههای خاصی از برنامه را با عنوان پشتیبانی بلند مدت[18] (LTS) منتشر میکند. همچنین نسخهٔ LTS بهطور معمول تا سه سال یا بیشتر، بهروزرسانیهای امنیتی و اصلاحات برنامه را دریافت میکند.
نسخهها | تاریخ[19] | یادداشت[20] |
---|---|---|
۰٫۹۰[21] | ۱۶ نوامبر ۲۰۰۵ | First release |
۰٫۹۱[22] | ۱۱ ژوئن ۲۰۰۶ | "new admin" |
۰٫۹۵[23] | ۲۹ ژوئیه ۲۰۰۶ | "magic removal" |
۰٫۹۶[24] | ۲۳ مارس ۲۰۰۷ | "newforms", testing tools |
۱٫۰[25] | ۳ سپتامبر ۲۰۰۸ | API stability, decoupled admin, unicode |
۱٫۱[26] | ۲۹ ژوئیه ۲۰۰۹ | Aggregates, transaction based tests |
۱٫۲[27] | ۱۷ مه ۲۰۱۰ | Multiple db connections, CSRF, model validation |
۱٫۳[28] | ۲۳ مارس ۲۰۱۱ | Class based views, staticfiles |
۱٫۴ پشتیبانی بلندمدت (LTS[29]) | ۲۳ مارس ۲۰۱۲ | Timezones, in browser testing, app templates |
۱٫۵[30] | ۲۳ فوریه ۲۰۱۳ | Python 3 Support, configurable user model |
۱٫۶[31] | ۶ نوامبر ۲۰۱۳ | Dedicated to Malcolm Tredinnick, db transaction management, connection pooling |
۱٫۷[32] | ۲ سپتامبر ۲۰۱۴ | Migrations, application loading and configuration |
۱٫۸ پشتیبانی بلندمدت (LTS)[33] | ۱ آوریل ۲۰۱۵ | Native support for multiple template engines. Supported until at least April 2018 |
۱٫۹[34] | ۱ دسامبر ۲۰۱۵ | Automatic password validation. New styling for admin interface. |
۱٫۱۰[35] | ۱ اوت ۲۰۱۶ | Full text search for PostgreSQL. New-style middleware. |
۱٫۱۱ پشتیبانی بلندمدت (LTS)[36] | ۴ آوریل ۲۰۱۷ | Last version to support Python 2.7. Supported until at least April 2020 |
۲٫۰[37] | ۲ دسامبر ۲۰۱۷ | First Python 3-only release, Simplified URL routing syntax, Mobile friendly admin |
۲٫۱[38] | ۱ اوت ۲۰۱۸ | Model "view" permission |
۲٫۲ پشتیبانی بلندمدت (LTS)[39] | ۱ آوریل ۲۰۱۹ | Security release. Supported until at least April 2022 |
۳٫۰[40] | ۲ دسامبر ۲۰۱۹ | ASGI support |
۳٫۱[41] | ۴ اوت ۲۰۲۰ | Asynchronous views and middleware |
۳٫۲ پشتیبانی بلندمدت (LTS)[41] | آوریل ۲۰۲۱ | Supported until at least April 2024 |
۴٫۰[41] | دسامبر ۲۰۲۱ | Extended Support until at April 2023 |
۴٫۱[41] | اوت ۲۰۲۲ | Extended Support until at December 2023 |
۴٫۲ پشتیبانی بلندمدت (LTS)[41] | آوریل ۲۰۲۳ | Extended Support until at April 2026 |
ایجاز: نگارش قدیمی نگارش قدیمیتر، هنوز پشتیبانی میشود نگارش پایدار جاری آخرین نگارش پیشنمایش انتشار آتی |
برای توسعه دادن پروژه جنگو خود، هیچ نیاز به ابزار خاصی ندارید و میتوانید با استفاده از ویرایشگر متنهای مرسوم کد منبع خود را توسعه دهید. با این حال ویرایشگر متنهایی بهطور مخصوص برای برنامهنویسی طراحی شدهاند که قابلیتهایی همچون برجستهسازی نحو را دارا هستند. با توجه به اینکه جنگو با استفاده از زبان پایتون نوشته میشود، استفاده ازویرایشگر متنهایی که از نحوه نوشتار پایتون پشتیبانی میکنند میتواند مفید باشد.
با استفاده از محیط یکپارچه توسعه نرمافزار(IDE) میتوانید قابلیتهایی مانند اشکالزدایی و بازسازی کد را حین توسعه برنامه خود استفاده کنید. همانند ویرایشگر متن ساده، محیط یکپارچه توسعه نرمافزار(IDE) که از پایتون پشتیبانی میکنند هم میتوانند برای توسعه مفید باشند. مقاله مرجع این مطلب رو ببینید:
چارچوب جنگو با ارائهی امکانات و ابزارهای قدرتمندی، توسعهدهندگان را در رعایت اصول اساسی مهندسی نرمافزار یاری میرساند. بهویژه در زمینههای امنیت دادهها، جلوگیری از تکرار کد و تسهیل پیکربندی، جنگو با ارائهی راهحلهای نوآورانه، این اصول را بهطور کارآمدی پیادهسازی میکند.
جنگو امنیت دادهها را با ارائهی مکانیزمهایی همچون جلوگیری از حملات CSRF (Cross Site Request Forgery) و SQL Injection از طریق ORM (Object-Relational Mapping) خود بهطور جدی تضمین میکند. همچنین، سیستم احراز هویت پیشفرض جنگو و سیاستهای دسترسی قابل تنظیم، به مدیران سایت امکان میدهد تا دادههای حساس را در برابر دسترسیهای غیرمجاز محافظت نمایند.
اصل DRY (Don't Repeat Yourself) یکی از اصول کلیدی در جنگو است که توسعهدهندگان را تشویق میکند تا از تکرار کد در پروژههای خود اجتناب کنند. جنگو با ارائهی سیستم قالببندی پیشرفته و امکان بهاشتراکگذاری کد بین برنامههای مختلف، این امکان را فراهم میآورد که با کمترین تکرار کد، بیشترین بهرهوری را از کدنویسی به دست آورد.
جنگو با پیشنهاد رویکرد «Convention over Configuration» (ترجیح قرارداد نسبت به پیکربندی)، تلاش میکند تا تنظیمات پیشفرض منطقی و کاربردی را برای پروژههای توسعه نرمافزار ارائه دهد. این رویکرد به توسعهدهندگان اجازه میدهد تا بدون صرف زمان زیاد برای پیکربندیهای اولیه، سریعتر به توسعهی ویژگیهای جدید بپردازند.
از سپتامبر سال ۲۰۰۸ تا به امروز، هر نیمسال کنفرانسی به نام «DjangoCon» برای توسعه دهندگان جنگو و کاربران آن برگزار میشود. همچنین کنفرانس «DjangoCon» سالیانه در ماه مه و ژوئن در اروپا[42] و بهطور مشابه، در اوت و سپتامبر در شهرهای مختلف آمریکا برگزار میشود.[43]
محل و تاریخ کنفرانسهای برگزار شده DjangoCon تا به امروز:
برنامه نویسان، قالب الگوی جنگو را از پایتون به زبانهای برنامهنویسی دیگر تبدیل کرده و از قابلیت چندسکویی نیز پشتیبانی میکنند. برخی از این موارد تبدیلهای مستقیم از جنگو هستند اما برخی دیگر، اگرچه از مفاهیم جنگو الهام گرفتهاند اما آزادی عمل برای تغیر دادن از ماهیت جنگو در آنها هموار شدهاست:
Django follows this MVC pattern closely enough that it can be called an MVC framework
{{cite web}}
: Check date values in: |access-date=
(help)Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.