فریم ورک جنگو (django)
- DOTWEB
دلیل محبوبیت فریم ورک جنگو چیست؟
آیا می دانید Django چیست و چرا این روزها طرفداران زیادی پیدا کرده است؟! با توجه به محبوبیت بالای زبان برنامه نویسی Python وهمچنین قابلیت های زیاد آن به عنوان یک زبان ماشین محور و کاربرد ها و توانایی های بالای آن در تولید برنامه های تحت وب، برنامه نویسان بیشتری رو به این زبان می آورند و نیاز به یک فریم ورک با ویژگی های خاص و قوی برای این برنامه روز به روز بیشتر حس می شود. در این مقاله نگاه کوتاهی به ویژگی های اصلی فریم ورک Django خواهیم داشت همچنین جنگو قویترین فریم ورک پایتون میباشد.
فریم ورک جنگو زمانی وارد بازار شد که سایر فریم ورک ها مثل Rail در زبان برنامه نویسی Python فراگیر شده بودند و فریم ورک Django به عنوان یک واکنش مناسب به این سروصدا ها ارائه شد و تقریبا میتوان گفت تمام فریم ورک های دیگر را بلا استفاده کرد. امروزه، یکی از مزیت های یادگیری Python، توانایی استفاده از Django است. ساختن برنامه های تحت وب تا حالا این قدر آسان و شیرین نبوده است. آینده نگری در زمینه طراحی و کاربری آسان باعث شده محبوبیت این برنامه روز به روز بیشتر شود و هنوز هم درحال افزایش میباشد چرا که کار با این فریم وورک برای برنامه نویسان بسیار لذت بخش میباشد.
Django یک فریم ورک سطح بالا برای زبان برنامه نویسی Pyhon است که کدنویسی سریع و پایدار با یک طراحی مناسب را به کاربران ارائه می کند. فریم ورک، جعبه ابزاری از Component هاست که برنامه های تحت وب به آنها نیاز دارند. هدف این است که برنامه نویس ها به جای نوشتن کد های تکراری برای کار های تکراری، روی قسمت هایی از پروژه هایشان کار کنند که مخصوص همان پروژه است. در حقیقت، فریم ورک Django نسبت به سایر فریم ورک های موجود ویژگی های بیشتری دارد. این فریم ورک، خیلی از دردسرهای کدنویسی را حل کرده است به همین دلیل به سرعت جای بیشتر فریم ورک ها را در بین برنامه نویسان پایتون گرفت. به علاوه، فریم ورک Django به شما امکان میدهد تا کلاس های کد ها و دامنه تان را مدل سازی کرده و قبل از این که متوجه شوید، یک ORM داشته باشید. بیایید یک نگاه نزدیک تر داشته باشیم تا بتوانیم با این فریم بهتر آشنا شویم.
امنیت جنگو
Django، به شکل پیش فرض، از خطاهای امنیتی که معمولا در PHP دیده می شوند جلوگیری می کند. برای اثبات این موضوع باید بگوییم که Django، همیشه کد های اصلی شما را پنهان می کند و اطلاعات از طریق تمپلیت ها به مرورگر ارسال می شوند و این حفاظت از کدهای شما موجب حفظ امنیت سایت شما میشود.
ساختار جنگو چیست ؟!
در وب سایتهای سنتی وابسته به داده، برنامه تحت وب منتظر یک درخواست HTTP از مرورگر میماند. زمانی درخواستی دریافت میشود، با توجه به URL یا اطلاعاتی که در دادههای ارسالی یا دریافتی قرار دارند، پردازش میکند.
با توجه به درخواست دریافت شده ممکن است اطلاعات از پایگاه داده خوانده شده، در آن ذخیره گشته یا عمل دیگری انجام بگیرد. سپس برنامه پاسخ را به مرورگر ارسال میکند. در فریم ورک جنگو، کد هایی که هر کدام از این درخواست ها را پردازش میکنند، در یک گروه قرار داده شدهاند.
همه منظوره
از جنگو میتوان تقریباً برای ساختن هر نوع وب سایتی (از سیستمهای مدیریت محتوا، طراحی پورتال و ویکیها گرفته تا شبکههای اجتماعی و طراحی سایتهای خبری و طراحی سایت فروشگاهی و طراحی سایت ریسپانسیو) استفاده کرد. این برنامه میتواند با هر فریمورک سمت مشتری دیگری نظیر فریم ورک های php همانند فریم ورک لاراول نیز کار کند و میتواند تقریباً در هر قالب (از جمله HTML، RSS، JSON، XML، PHP و غیره)محتوایی را ارائه دهد.
امکان گسترش منابع
وجود یک تفکیک واضح بین قسمتهای مختلف به این معنی است که میتواند با افزودن سخت افزار در هر سطح، افزایش سرورهای ذخیره، سرورهای پایگاه داده یا سرورهای برنامه، امکان افزایش تعداد بازدیدکنندگان و در نتیجه افزایش رتبه سئو سایت را ایجاد کند. بسیاری از سایتهای پرترافیک از جنگو استفاده کرده اند تا خواستههای آنها را برآورده کند )به عنوان مثال Instagram و Disqus و (….
به همین دلیل میباشد که استفاده از فریم ورک جنگو بسیار مورد استفاده قرار میگیرد.
کدی که در پایتون نوشته شده حتی برای افراد غیر حرفه ای نیز قابل خواندن و درک است و به تازگی برنامه نویسان بسیاری را جذب خود کرده. این یکی از عواملی است که باعث میشود برنامههای وب پایتون، سازگار با مبانی سئو (SEO Friendly) باشند. جنگو URLهای معنایی بر اساس عنوان و محتوای صفحه سایت تولید میکند. همچنین برنامههای جنگو سایر ویژگیهای بهینه سازی موتور جستجو را نیز به راحتی پیاده سازی میکنند پس سایت هایی که با جنگو طراحی میشود برای افزایش رتبه در گوگل بسیار راحت تر به صفحات اول کوگل میرسند.
مشخصه های جانگو
Django سیستم نام گذاری خود را برای هر نوع کارکرد و مولفه ای دارد (به عنوان مثال، پاسخهای اچ تی تی پی “views”نامیده میشوند). همچنین یک پنل مدیریتی که کار کردن با آن آسانتر از لاراول و یا Yii است. سایر ویژگیهای فنی جنگو عبارتند از:
- سینتکس ساده
- معماری هسته MVC
- وب سرور خودش است
- باتریها شامل تمام موارد ضروری مورد نیاز برای حل مسائل مشترک هستند.
- کتابخانه HTTP
- پشتیبانی میان افزار
- یک چارچوب تست واحد زبان پایتون.
- یک ORM (شی رابطهای mapper)است.
چرا جنگو ؟
- سریع و ساده است؛ یکی از اهداف اصلی Django سادهسازی کار برای توسعه دهندگان است به همین دلیل در مدت زمان کوتاهی توانست ارتباط بسیار بالایی با برنامه نویسان برقرار کند.
- اصول توسعه سریع؛ به این معنی است که توسعه دهندگان میتوانند بیش از یک تکرار را در یک زمان بدون شروع کل برنامه از صفر انجام دهند و این خود نیز یک قابلیت بسیار مهم هست که در همه ی فریم ورک ها دیده نمیشود.
- فلسفه تکراری ندارد؛ به این معنی است که توسعه دهندگان میتوانند از کد موجود استفاده کنند و بر روی کد منحصر به فرد دیگر تمرکز کنند.
- سایت هایی مهمی مانند Instagram، Disqus، Mozilla، Bitbucket، National Geographic وLast.fm از فریم ورک جنگو استفاده میکنند پس با اطمینان خاطر میتوان گفت فریم ورک جنگو یک فریم ورک کامل است.
نما یا View
نما یک تابع مدیریت درخواست است که درخواست HTTP را دریافت کرده و به صورت HTTP به آن پاسخ میدهد. نما برای پاسخ به درخواست، میتواند با استفاده از مدلها به دادههای مورد نیاز دسترسی یافته و پاسخ را به فرم متناسب با قالب درمیآورد البته که این تابع یک ویژگی است که در بیشتر فریم ورک های دیده میشود.
مدل ها (Models)
مدل ها جزء اشیای پایتون هستند که وظیفه آنها مشخص کردن ساختار دادههای برنامه تحت وب میباشد و امکان مدیریت (حذف، ویرایش و افزودن) رکوردهای پرس و جو و پایگاه داده را فراهم میکند که این قابلیت در طراحی سایت آگهی بسیار میتواند مفید باشد.
جنگو را از کجا شروع کنیم؟
بهترین توصیه برای آغاز یادگیری زبانهای برنامه نویسی، این است که یک برنامه بنویسید. در واقع تا زمانی که با یک برنامه کار نکنید و چند کد (هر چند ساده) ننویسید، هرگز چیزی یاد نخواهید گرفت. از آنجایی که جنگو فریم ورکی است که از پایتون بهره میگیرد، ابتدا باید نرم افزار پایتون را روی سیستم خود نصب کنید که میتوانید آموزش نصب را از youtube ببینید و به راحتی در سیستم خودتون نصب کنید.
در صورتی که قصد دارید برنامه تحت وب پیچیدهای طراحی کنید بهتر است یک پایگاه داده نیز نصب کنید. برای این کار میتوانید از برنامههایی همچون PostgreSQL و MariaDB و MySQL یا Oracle استفاده کنید. در مرحله آخر خود برنامه جنگو را باید نصب کنید که پرکاربرد ترین پایگاه داده که استفاده از آن ساده تر است my sql میباشد.
در صورتی که قصد دارید برنامه تحت وب پیچیدهای طراحی کنید بهتر است یک پایگاه داده نیز نصب کنید. برای این کار میتوانید از برنامههایی همچون PostgreSQL و MariaDB و MySQL یا Oracle استفاده کنید. در مرحله آخر خود برنامه جنگو را باید نصب کنید که پرکاربرد ترین پایگاه داده که استفاده از آن ساده تر است my sql میباشد.
Mozilla Firefox
- موزیلا از جنگو برای کار با مقیاسهای بالای دادهای به شکل بکاپهای عظیم استفاده میکند.
- Pinterest نیز مثل اینستاگرام، یکی از شرکتهایی است که از Ruby on Rails به جنگو نقل مکان کرده تا بتواند مقیاسهای دادهای بالاتری را پوشش دهد چرا که پوشش مقایس داده در فریم ورک جنگو بسیار بالا است.
NASA
- سازمان ناسا از فریم ورک جنگو برای ساخت و بروز رسانی مداوم وبسایت خود بهره میبرد.
Washington Post
- این غول خبری، میلیونها بازدیدکننده در روز دارد و به جنگو برای سرپا نگه داشتن وبسایت و عملیات آن وابستگی زیادی دارد.
پس در نتیجه استفاده و یادگیری فریم ورک جنگو یک راه حل بسیار عاقلانه برای طراحی سایت و نرم افزار های تحت وب میباشد و میتوانید به راحتی از آن استفاده کنید چرا که از قابلیت های فراوانی به نسبت سایر فریم ورک ها بهره میبرد.