در این قسمت با نقش جنگو در سادهتر و سریعتر کردن فرایند توسعه وب آشنا میشوید و یاد میگیرید که این فریمورک چطور مدیریت درخواستها، احراز هویت و تعامل با پایگاه داده را بر عهده میگیرد تا بتوانید تمرکز خود را روی منطق اصلی کسبوکار (business logic) بگذارید.
جنگو چیست؟
قبل از شروع کار با جنگو، بهتر است ابتدا با این فریمورک و کاربرد آن آشنا شویم. جنگو یک فریمورک توسعه وب برای زبان برنامهنویسی پایتون است. بهطور کلی، جنگو ابزاری است که به شما کمک میکند با استفاده از پایتون و در کنار آن، اچتیامال و سیاساس، وبسایت ایجاد کنید.
جنگو برای پایتون نسخه سه و بالاتر طراحی شده است؛ بنابراین در این دوره نیز از پایتون نسخه سه استفاده میکنیم.
رویکرد Batteries Included در جنگو
یکی از ویژگیهای مهم جنگو، پیروی از رویکردی با عنوان Batteries Included است. همین ویژگی باعث شده است جنگو امکانات زیادی را بهصورت یکپارچه در اختیار توسعهدهندگان قرار دهد.
جنگو یک فریمورک است که روی سیستم شما نصب میشود و مجموعهای از قابلیتها و توابع آماده را در اختیار شما قرار میدهد تا بتوانید از آنها در کدهای پایتون خود استفاده کنید. در نتیجه، لازم نیست برای تکتک جزئیات پروژه، همهچیز را از ابتدا پیادهسازی کنید و به اصطلاح، چرخ را دوباره اختراع کنید.
برای مثال، جنگو قابلیتهای آمادهای برای:
- مدیریت درخواستها
- کار با دادهها
- ذخیره اطلاعات در پایگاه داده
- احراز هویت کاربران
در اختیار شما قرار میدهد.
از آنجا که جنگو امکانات آماده و متنوعی دارد، در این دوره نیز با بسیاری از قابلیتهای کلیدی آن آشنا میشویم و نحوه استفاده از آنها را بررسی خواهیم کرد. در واقع، یکی از دلایل اصلی اینکه به جنگو یک فریمورک گفته میشود، همین مجموعه امکانات و ابزارهایی است که بهصورت یکپارچه در اختیار توسعهدهنده قرار میدهد.
وقتی میگوییم یک فریمورک از رویکرد Batteries Included پیروی میکند، منظور این است که به احتمال زیاد بیشتر امکاناتی که برای ساخت یک وبسایت کامل به آنها نیاز دارید، در خود فریمورک وجود دارند. فرقی نمیکند به قابلیتهایی مانند آپلود فایل یا مدیریت کاربران نیاز داشته باشید؛ بسیاری از این امکانات از قبل آماده شدهاند و میتوانید از آنها استفاده کنید.
از طرف دیگر، با وجود امکانات آماده و متنوع جنگو، دست شما برای شخصیسازی آنها کاملاً باز است. میتوانید بخشهای مختلف فریمورک را متناسب با نیاز پروژه خود تغییر دهید، امکانات جدیدی به آن اضافه کنید و آن را توسعه دهید.
اگر تا پایان این دوره با ما همراه باشید، بهخوبی با این موضوع آشنا میشوید و میبینید که جنگو قابلیتهای زیادی دارد که نیازی نیست آنها را از ابتدا پیکربندی و پیادهسازی کنید. با این حال، میتوانید این قابلیتها را متناسب با پروژه خود Fine-tune کنید تا دقیقاً مطابق با نیازهای پروژه عمل کنند.
نکته دیگری که باید در نظر داشته باشید این است که جنگو صرفاً یک کتابخانه کوچک یا یک فریمورک معمولی برای پروژههای آزمایشی و تمرینی نیست. البته میتوان از آن برای چنین پروژههایی نیز استفاده کرد، اما قابلیتها و امکانات جنگو بسیار فراتر از این موارد است.
فریمورک Production-Ready در جنگو
در واقع، جنگو یک فریمورک Production-Ready است؛ یعنی به اندازهای پایدار و کامل است که میتوانید با خیال راحت از آن برای ساخت پروژههای واقعی استفاده کنید.
امروزه بسیاری از وبسایتهای واقعی با استفاده از جنگو ساخته شدهاند. بنابراین، جنگو ابزاری است که میتوانید با کمک آن پروژههای واقعی ایجاد کنید، آنها را Deploy کنید و حتی به صدها هزار یا میلیونها کاربر سرویس ارائه دهید.
تا اینجا با معرفی جنگو و ویژگیهای اصلی آن آشنا شدیم. اما سؤال مهم این است که چرا باید از جنگو استفاده کنیم؟
چرا باید از جنگو استفاده کنیم؟
درست است که جنگو امکانات آماده و متنوعی در اختیار شما قرار میدهد، اما دلیل استفاده از آن فقط همین موضوع نیست. برای اینکه بهتر درک کنیم چرا به جنگو نیاز داریم، بهتر است یک قدم به عقب برگردیم و ابتدا ببینیم اینترنت و وبسایتها چگونه کار میکنند.
بهطور کلی، ما کاربرانی داریم که از وبسایتها بازدید میکنند و سرورهایی داریم که کدهای این وبسایتها روی آنها ذخیره شده است. روند معمول به این شکل است که کاربر یک آدرس را در مرورگر وارد میکند یا روی یک لینک کلیک میکند و از این طریق، درخواستی برای دسترسی به یک صفحه یا منبع خاص ارسال میشود.
نحوه ارتباط مرورگر با سرور
بعد از اینکه کاربر یک آدرس را در مرورگر وارد میکند یا روی یک لینک کلیک میکند، مرورگر یک Request به سمت سروری که میزبان وبسایت است ارسال میکند.
اما سرور چگونه پیدا میشود؟ این کار بر اساس همان آدرسی انجام میشود که کاربر در نوار آدرس مرورگر وارد کرده است.
سرور پس از دریافت درخواست، پردازشهای لازم را انجام میدهد و در نهایت یک Response برای مرورگر ارسال میکند. این پاسخ معمولاً شامل کدهای HTML و CSS است تا مرورگر بتواند وبسایت را پردازش کرده و آن را به کاربر نمایش دهد.
اجرای منطق برنامه در سمت سرور
اما بخش مهمتر ماجرا در سمت سرور اتفاق میافتد؛ جایی که Business Logic یا همان منطق اصلی برنامه اجرا میشود.
در این بخش، برنامه میتواند با پایگاه داده ارتباط برقرار کند، اطلاعات موردنیاز را دریافت کند یا دادههای جدیدی را در آن ذخیره کند. بهعنوان یک توسعهدهنده وب، بهتر است تمرکز اصلی ما روی همین هسته و منطق برنامه باشد؛ یعنی روی ویژگیهایی تمرکز کنیم که بخش اصلی وبسایت ما را تشکیل میدهند.
برای مثال، فرض کنید در حال ساخت یک فروشگاه اینترنتی هستیم. در این حالت، میخواهیم تمرکزمان روی مواردی مانند نحوه نمایش محصولات به کاربران یا مدیریت سفارشهای ورودی باشد. در مقابل، نمیخواهیم درگیر نوشتن کدهای تکراری و جزئیات فنی شویم؛ برای مثال، اینکه درخواستهای ورودی چگونه Parse شوند، ارتباط با پایگاه داده چگونه برقرار شود یا ورودیهای کاربر چگونه Validate شوند.
اینجاست که فریمورکی مانند جنگو به کمک ما میآید. جنگو بسیاری از این کارهای تکراری و زمانبر را بر عهده میگیرد و به ما اجازه میدهد بهعنوان توسعهدهنده، تمرکز بیشتری روی ویژگیهای کلیدی و Business Logic وبسایت داشته باشیم.
در طول این دوره، همه این موارد را بهصورت عملی مشاهده و بررسی خواهید کرد.
پیشنیازهای یادگیری جنگو
تا اینجا با جنگو، کاربرد آن و دلیل استفاده از این فریمورک آشنا شدیم. حالا وقت آن است که کار با جنگو را شروع کنیم؛ اما پیش از آن، بهتر است ببینیم برای استفاده بهتر از این دوره به چه پیشنیازهایی نیاز دارید.
آشنایی با زبان برنامهنویسی پایتون
برای شروع این دوره باید دانش پایهای از زبان برنامهنویسی پایتون داشته باشید. نیازی نیست پیش از این با جنگو کار کرده باشید و همچنین لازم نیست یک متخصص حرفهای پایتون باشید؛ اما آشنایی با مفاهیم پایهای این زبان ضروری است.
آشنایی با ابزارها و مفاهیم توسعه وب
علاوه بر پایتون، به آشنایی اولیه با ابزارها و مفاهیم توسعه وب نیز نیاز دارید. لازم نیست در HTML، CSS یا JavaScript متخصص باشید. حتی در طول این دوره قرار نیست یک خط کد جاوااسکریپت بنویسید؛ اما باید درک کلی از نحوه کار وب داشته باشید.
بهخصوص بهتر است با مفاهیم اولیه HTML و CSS آشنا باشید و پیش از شروع دوره، حداقل یک آشنایی اولیه با آنها داشته باشید.
اکنون میدانیم برای شروع این دوره به چه دانش و مهارتهایی نیاز داریم. بنابراین، وقت آن رسیده است که جنگو را نصب کنیم و کار با آن را آغاز کنیم.
