جنگو چیست؟ همهچیز درباره فریمورک محبوب پایتون

برای آموزش جنگو بد نیست ابتدا بدانیم که جنگو چیست. جنگو یک فریم ورک وب سطح بالای پایتون است که امکان توسعه سریع وبسایت های ایمن و قابل نگهداری را فراهم میسازد. این فریم ورک توسط توسعه دهندگان با تجربه ساخته شده است و بسیاری از دردسر های توسعه وب را از میان بر میدارد تا شما بتوانید تمرکز خود را بر نوشتن برنامه تان بگذارید، بدون آن که نیاز به اختراع دوباره چرخ داشته باشید. جنگو رایگان و متن باز است، جامعه ای پر رونق و فعال دارد، مستندات بسیار خوبی دارد و گزینه های فراوانی برای دریافت پشتیبانی رایگان یا پولی در اختیار شما قرار می دهد.
جنگو به شما کمک می کند نرم افزاری بنویسید که:
کامل است
جنگو از فلسفه «همراه با تمام ابزار های لازم» پیروی می کند و تقریباً هر آن چه را که توسعه دهندگان ممکن است به آن نیاز داشته باشند به صورت پیش فرض فراهم می آورد. از آن جا که همه چیز مورد نیاز در قالب یک «محصول» ارائه شده است، این اجزا به صورت یکپارچه با یکدیگر کار می کنند، از اصول طراحی یکسان پیروی می کنند و دارای مستندات جامع و به روز شده هستند.
چند منظوره است
جنگو می تواند (و در واقع استفاده شده است تا) تقریباً هر نوع وبسایتی را بسازد. از سامانه های مدیریت محتوا و ویکی ها گرفته تا شبکه های اجتماعی و سایت های خبری. این فریم ورک می تواند با هر فریم ورک سمت کاربر کار کند و محتوا را در تقریباً هر قالبی از جمله ( HTML، فیدهای RSS،JSON و XML ) ارائه دهد.
درونی، در حالی که گزینه های مختلفی برای تقریباً هر عملکردی که ممکن است بخواهید ارائه می دهد (مثلاً چندین پایگاه داده محبوب، موتور های قالب بندی و غیره)، همچنین می تواند برای استفاده از اجزای دیگر در صورت نیاز گسترش یابد.
ایمن است
جنگو به توسعه دهندگان کمک می کند تا از بسیاری از اشتباهات رایج امنیتی اجتناب کنند، زیرا فریم ورکی فراهم می آورد که برای «انجام درست امور» طراحی شده است تا وبسایت را به صورت خودکار محافظت کند. به عنوان مثال، جنگو راهی ایمن برای مدیریت حساب های کاربری و گذرواژه ها ارائه می دهد و از اشتباهات رایجی مثل ذخیره اطلاعات نشست در کوکی ها (که در این حالت در معرض آسیب هستند) پرهیز می کند (در عوض کوکی ها فقط یک کلید دارند و داده واقعی در پایگاه داده ذخیره می شود)، یا از ذخیره مستقیم گذرواژه به جای هش گذرواژه خودداری می کند.
هش گذرواژه یک مقدار با طول ثابت است که با عبور دادن گذرواژه از یک تابع هش رمزنگاری تولید می شود. جنگو می تواند با عبور دادن گذرواژه وارد شده از همان تابع هش و مقایسه خروجی آن با مقدار هش ذخیره شده، درستی گذرواژه را بررسی کند. با این حال، به دلیل ماهیت «یک طرفه» این تابع، حتی اگر مقدار هش ذخیره شده به دست مهاجم بیفتد، باز هم بسیار دشوار است که گذرواژه اصلی به دست آید.
جنگو به طور پیش فرض در برابر بسیاری از آسیب پذیری ها محافظت ایجاد می کند، از جمله تزریق SQL، اسکریپت نویسی میان سایتی، جعل درخواست میان سایتی و کلیک جکینگ (برای جزئیات بیشتر درباره این نوع حملات به بخش امنیت وبسایت مراجعه کنید).
از کجا آمده است؟
جنگو در ابتدا بین سال های ۲۰۰۳ تا ۲۰۰۵ توسط یک تیم وب که مسئول ایجاد و نگهداری وبسایت های روزنامه بودند توسعه یافت. اگر علاقمند به آموزش پایتون هستید بد نیست بدانید که این فریم ورک متعلق به زبان محبوب پایتون است. پس از ایجاد چندین وبسایت، این تیم شروع به استخراج و استفاده مجدد از مقدار زیادی کد و الگوهای طراحی مشترک کرد. این کدهای مشترک به تدریج به یک فریم ورک عمومی برای توسعه وب تکامل یافت که در ژوئیه ۲۰۰۵ به صورت منبع باز با عنوان پروژه «جنگو» منتشر شد.
جنگو از آن زمان تاکنون رشد و بهبود یافته است؛ از نخستین نسخه مهم آن (۱.۰) در سپتامبر ۲۰۰۸ تا نسخه ۵.۰ در اواخر سال ۲۰۲۳. هر نسخه، قابلیت های جدید و اصلاحات متعددی به همراه داشته است؛ از جمله پشتیبانی از انواع جدید پایگاه داده ها، موتورهای قالب بندی و کشینگ، تا افزودن توابع و کلاس های نمای «عمومی» که باعث می شوند توسعه دهندگان برای انجام بسیاری از وظایف برنامه نویسی، کد کمتری بنویسند.
جنگو اکنون یک پروژه منبع باز پررونق و مشارکتی است که هزاران کاربر و مشارکت کننده دارد. اگرچه هنوز برخی ویژگی ها از ریشه های اولیه اش در آن دیده می شود، جنگو به یک فریم ورک همه کاره تبدیل شده است که توانایی توسعه هر نوع وبسایتی را دارد.
جنگو چقدر محبوب است؟
معیار قطعی و در دسترسی برای اندازه گیری محبوبیت فریم ورک های سمت سرور وجود ندارد (اگرچه می توان با استفاده از روش هایی مانند شمارش تعداد پروژه های گیت هاب و سوالات سایت Stack Overflow برای هر پلتفرم، محبوبیت را تخمین زد). اما سوال بهتر این است که آیا جنگو «به اندازه کافی محبوب» هست تا از مشکلات پلتفرم های کم طرفدار دور بماند؟ آیا همچنان در حال توسعه است؟ آیا در صورت نیاز می توانید کمک بگیرید؟ آیا فرصتی برای کسب درآمد از طریق یادگیری جنگو وجود دارد؟
با توجه به تعداد وبسایت های معروفی که از جنگو استفاده می کنند، تعداد افرادی که در توسعه کد آن مشارکت دارند و تعداد افرادی که پشتیبانی رایگان و پولی ارائه می دهند، پاسخ مثبت است: جنگو یک فریم ورک محبوب است!
وبسایت های پرطرفداری که از جنگو استفاده می کنند عبارتند از: Disqus، Instagram، بنیاد Knight، بنیاد MacArthur، موزیلا، نشنال جئوگرافیک، بنیاد Open Knowledge، Pinterest و OpenStack.
کد جنگو چه شکلی است؟
در یک وب سایت سنتی مبتنی بر داده، یک برنامه وب منتظر دریافت درخواست های HTTP از مرورگر وب (یا سایر کلاینت ها) می ماند. هنگامی که یک درخواست دریافت می شود، برنامه کاربردی بر اساس آدرس URL و احتمالاً اطلاعات موجود در داده های POST یا GET مشخص می کند که چه چیزی مورد نیاز است. بسته به آنچه لازم است، ممکن است برنامه اطلاعاتی را از پایگاه داده بخواند یا بنویسد، یا وظایف دیگری را برای پاسخ گویی به درخواست انجام دهد. سپس برنامه یک پاسخ به مرورگر وب ارسال می کند که اغلب با ایجاد پویا یک صفحه HTML صورت می گیرد؛ به این صورت که داده های بازیابی شده در محل های مشخصی از یک قالب HTML جای گذاری می شوند تا مرورگر آن را نمایش دهد.
با این اپلیکیشن ساده، هر زبانی رو فقط با روزانه 5 دقیقه گوش دادن، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، همزمان تقویت حافظه، آموزش تصویری با کمترین قیمت ممکن!