جنگو Django
در این مطلب، با کتابخانه «جنگو» «Django» در «زبان برنامهنویسی پایتون» (Python Programming Language) آشنا خواهید شد. کتابخانه جنگو، یک پلتفرم (یا چارچوب) توسعه برنامههای کاربردی در زبان پایتون محسوب میشود که برای ساختن و «نگهداری» (Maintaining) برنامههای تحت وب با کیفیت مورد استفاده قرار میگیرد. کتابخانه جنگو از طریق حذف وظایف تکراری، فرایند توسعه برنامههای کاربردی تحت وب را ساده و از لحاظ زمانی مقرون به صرفه میکند.
جنگو یک چارچوب (یا پلتفرم) سطح بالا برای برنامهنویسی وب در پایتون محسوب میشود که امکان «توسعه سریع» (Rapid Development) و طراحی عملگرا از برنامههای کاربردی تحت وب را برای برنامهنویسان و توسعهدهندگان فراهم میآورد. کتابخانه جنگو به کاربران اجازه میدهد تا با کد نویسی کمتر، برنامههای کاربردی به مراتب بهتری را با سرعت بیشتری تولید کنند.
در ادامه به طور مختصر، تاریخچه شکلگیری و عرضه کتابخانه جنگو ارائه خواهد شد:
- در سال 2003: جنگو به عنوان یک پروژه داخلی در روزنامه Lawrence Journal-World، توسط Adrian Holovaty و Simon Willison شکل گرفت.
- در سال 2005: پدیدآورندگان کتابخانه جنگو، این پلتفرم برنامهنویسی را در جولای 2005 عرضه کردند و به احترام یاد و خاطره موسیقیدان و نوازندهای به نام Django Reinhardt، نام Django را برای آن انتخاب کردند.
- در سال 2005: جنگو در عمل نشان داد که توانایی مدیریت سایتهای پرترافیک را به راحتی دارد.
- در حال حاضر: جنگو هم اکنون یکی از پروژههای برنامهنویسی «منبع باز» (Open Source) محسوب میشود که برنامهنویسان و توسعهدهندگان زیادی از سراسر دنیا، برای افزودن قابلیتهای نرمافزاری جدید به آن تلاش میکنند.
از جمله مهمترین اصول فلسفه طراحی کتابخانه جنگو، میتوان به موارد زیر اشاره کرد:
- استقلال نسبی مؤلفههای مختلف این پلتفرم: جنگو به گونهای طرحی شده است تا هر کدام از عناصر و مؤلفههای این پلتفرم، استقلال نسبی از یکدیگر داشته باشند.
- کد نویسی کمتر: کد نویسی کمتر در جنگو، مترادف با چرخه سریع توسعه نرمافزار خواهد بود.
- اصل عدم تکرار (Don’t Repeat Yourself | DRY): در برنامهنویسی وب، توسط جنگو، توصیه میشود که هر کدام از ماژولهای برنامه، بجای اینکه در بخشهای مختلف برنامه کاربردی تحت وب تکرار شوند، تنها در یک بخش نوشته شوند.
- توسعه سریع: فلسفه طراحی جنگو به گونهای است که به برنامهنویسان و توسعهدهندگان اجازه میدهد تا در کوتاهترین زمان ممکن، برنامههای کاربردی را توسعه دهند.
- طراحی تمیز: کدهای برنامهنویسی جنگو در پایتون بسیار خوانا و تمیز طراحی شدهاند؛ فلسفه طراحی جنگو، برنامهنویسان و توسعهدهندگان را تشویق میکند تا از قواعد استاندارد توسعه برنامههای کاربردی تحت وب تبعیت کنند.
از جمله مزایای استفاده از کتابخانه جنگو، میتوان به موارد زیر اشاره کرد:
- پشتیبانی از «نگاشت مدل اشیاء به مدل رابطهای» (Object-Relational Mapping | ORM): پلتفرم Django، پلی میان «مدل داده» (Data Model) و «موتور پایگاه داده» (Database Engine) پدید میآورد و از مجموعه بزرگی از «سیستمهای مدیریت پایگاه داده» (Database Management Systems) نظیر MySQL ،Oracle ،Postgres و سایر موارد پشتیبانی میکند. همچنین، جنگو از پایگاههای داده NoSQL نیز از طریق انشعاب خاصی از این پلتفرم، به نام Django-nonrel پشتیبانی میکند. در حال حاضر، تنها پایگاههای داده NoSQL که توسط جنگو پشتیبانی میشوند، پلتفرمهای MongoDB و Google App Engine هستند.
- «پشتیبانی چند زبانه» (Multilingual Support): پلتفرم جنگو، از طریق سیستم داخلی بینالملیسازی این پلتفرم، از توسعه وبسایتهای چند زبانه پشتیبانی میکند. چنین امکانی به برنامهنویس و توسعهدهنده اجازه میدهد تا وبسایتهایی را توسعه دهد که به طور ذاتی از چندین زبان دنیا پشتیبانی میکنند.
- پشتیبانی از پلتفرمها و چارچوبهای مختلف توسعه وب: پلتفرم Django، پشتیبانی داخلی و تعبیه شده از پلتفرمهایی نظیر Ajax ،RSS ،Caching و سایر موارد فراهم میآورد.
- «واسط کاربری گرافیکی» (Graphical User Interface | GUI) مدیریتی: پلتفرم جنگو، یک واسط کاربری آماده به استفاده (ready-to-use) برای فعالیتهای مدیریتی وبسایت و مؤلفههای آن در اختیار برنامهنویسان و توسعهدهندگان قرار میدهد.
- «محیط توسعه» (Development Environment): کتابخانه Django به همراه یک «وب سرور» (Web Server) سبک عرضه میشود که فرایند توسعه و آزمایش برنامههای کاربردی «سرتاسری» (End-to-End) را تسهیل میکند.