جنگو(یکی از کتاب خانه های پایتون)
تاریخچه جنگو در ادامه به طور مختصر، تاریخچه شکلگیری و عرضه کتابخانه جنگو ارائه خواهد شد: در سال 2003: جنگو به عنوان یک پروژه داخلی در روزنامه Lawrence Journal-World، توسط Adrian Holovaty و Simon Willison شکل گرفت. در سال 2005: پدیدآورندگان کتابخانه جنگو، این پلتفرم برنامهنویسی را در جولای 2005 عرضه کردند و به احترام یاد و خاطره موسیقیدان و نوازندهای به نام Django Reinhardt، نام Django را برای آن انتخاب کردند. در سال 2005: جنگو در عمل نشان داد که توانایی مدیریت سایتهای پرترافیک را به راحتی دارد. در حال حاضر: جنگو هم اکنون یکی از پروژههای برنامهنویسی «منبع باز» (Open Source) محسوب میشود که برنامهنویسان و توسعهدهندگان زیادی از سراسر دنیا، برای افزودن قابلیتهای نرمافزاری جدید به آن تلاش میکنند. فلسفه طراحی جنگو (Django) از جمله مهمترین اصول فلسفه طراحی کتابخانه جنگو، میتوان به موارد زیر اشاره کرد: استقلال نسبی مؤلفههای مختلف این پلتفرم: جنگو به گونهای طرحی شده است تا هر کدام از عناصر و مؤلفههای این پلتفرم، استقلال نسبی از یکدیگر داشته باشند. کد نویسی کمتر: کد نویسی کمتر در جنگو، مترادف با چرخه سریع توسعه نرمافزار خواهد بود. اصل عدم تکرار (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) را تسهیل میکند. محیط توسعه جنگو «محیط توسعه» (Development Environment) جنگو شامل سه بخش است: نصب و راهاندازی زبان برنامهنویسی پایتون نصب و راهاندازی جنگو در پایتون نصب و راهاندازی یک سیستم «پایگاه داده» (Database) نصب و راهاندازی پایتون پیش از اینکه قادر به توسعه برنامههای کاربردی تحت وب، توسط پلتفرم Django، در زبان پایتون باشید، لازم است تا ابتدا زبان پایتون را روی سیستم عامل مقصد خود نصب کنید. کاربران و مخاطبان این مطلب میتوانند آموزش جامع نصب پایتون در سیستمهای عامل مختلف را در اینجا مطالعه کنند. همچنین، مجموعهای از آموزشهای مرتبط با یادگیری پایتون و نصب نسخه 2 و 3 پایتون در سیستمهای عامل ویندوز، لینوکس و مک نیز در اینجا گردآوری شده است. نصب و راهاندازی جنگو نصب و راهاندازی جنگو ساده است. با این حال، گامهای لازم برای آمادهسازی آن، بسته به سیستمهای عامل مختلف، متفاوت است. از آنجایی که پایتون یک زبان «مستقل از پلتفرم» (Platform-Independent) است، بسته برنامهنویسی جنگو برای تمامی سیستمهای عامل مقصد یکسان است. بهروزترین نسخه کتابخانه Django از لینک [+] قابل دانلود است. ساختار یک پروژه Django در پلتفرم Django، به هر برنامه کاربردی تحت وب که قرار است توسعه داده شود، «پروژه» (Project) گفته میشود. همچنین، یک پروژه از مجموعهای از «برنامههای کاربردی» (Applications) تشکیل شده است. یک برنامه کاربردی (Application) نیز مجموعهای از فایلهای کد است که به معماری MVT وابسته هستند. برای واضحتر شدن این مطلب، به این مثال دقت کنید. فرض کنید که هدف پیادهسازی یک وبسایت است. در چنین حالتی، وبسایت همان پروژه خواهد بود. همچنین، انجمن وبسایت، بخش خبر و «فرم تماس» (contact form)، برنامههای کاربردی (Applications) این پروژه را تشکیل خواهند داد. از آنجایی که هر برنامه کاربردی (Application) مستقل از دیگر برنامههای کاربردی است، چنین ساختاری به برنامهنویس و توسعهدهنده اجازه میدهد تا برنامههای کاربردی توسعه داده شده را میان پروژههای مختلف جا به جا کند. Template ها در جنگو لایه template مشابه لایه view در معماری MVC است و هدف آن نمایش داده و اطلاعات به کاربر بوده و در حقیقت منطق ظاهری برنامه (Display Logic) میباشد. اگر شما با templating در زبانها و فریمورکهای دیگر از جمله لاراول آشنا باشید، تقریبا در جنگو هم به این شکل است. شما از یک سینتکس مشابه HTML استفاده میکنید که بعدا به HTML کامپایل میشود و شامل تمامی دادههای مربوطه میباشد. البته که فرمتهای غیر HTML هم وجود دارند، مثلا اگر خواستید میتوانید از سندهای XML یا فایلهای JSON و … استفاده کنید. Views در جنگو View در جنگو لایه بیزینس از معماری سه لایه MVT است. این لایه شامل فانکشنها و متدهایی میشود که موجب دریافت و پردازش درخواست کاربر و ارسال نتیجه معتبر برای کاربر میشود. این لایه داده را از Model دریافت میکند و به هر کدام از template ها دسترسی به داده خاصی را میدهد. امنیت Django، به شکل پیش فرض، از خطاهای امنیتی که معمولا در PHP دیده می شوند جلوگیری می کند. برای اثبات این موضوع باید بگوییم که Django، همیشه کد های اصلی شما را پنهان می کند و اطلاعات از طریق تمپلیت ها به مرورگر ارسال می شوند. چرا جنگو ؟ سریع و ساده است؛ یکی از اهداف اصلی Django سادهسازی کار برای توسعه دهندگان است. اصول توسعه سریع؛ به این معنی است که توسعه دهندگان میتوانند بیش از یک تکرار را در یک زمان بدون شروع کل برنامه از صفر انجام دهند. فلسفه تکراری ندارد؛ که به این معنی است که توسعه دهندگان میتوانند از کد موجود استفاده کنند و بر روی کد منحصر به فرد دیگر تمرکز کنند. سایت هایی مهمی مانند Instagram، Disqus، Mozilla، Bitbucket، National Geographic وLast.fm از فریم ورک جنگو استفاده میکنند. امیدوارم از این مقاله لذت کافی رو برده باشید
جواد یوسفی
برنامه نویس فرانت اند
دیدگاه کاربران
ثبت دیدگاه
برای ثبت نظر، ابتدا وارد شوید.
محمد عبادی پور
👍👍✔