همه چیز در مورد جنگو از 0 تا 100

جنگو چیست ؟در این بخش از آموزش جنگو، ابتدا به چیستی و تعریف django پرداخته شده است. جنگو یک فریم‌وُرک وب سطح بالای پایتون است که فرایند توسعه سریع (Rapid Development)، شفاف و با طراحی کاربردی را امکان‌پذیر می‌سازد. یک چارچوب نرم‌افزاری اپلیکیشن وب django، مجموعه‌ای از ابزارهای مبتنی بر قطعات (اجزاء | Component) برای رفع تمامی نیازمندی‌های توسعه اپلیکیشن است. هدف اصلی فریم‌ورک جنگو این است که به توسعه‌دهندگان اجازه داده شود به جای اتلاف وقت و انرژی روی قطعات توسعه داده شده فعلی، روی قطعات و اجزای جدید اپلیکیشن تمرکز داشته باشند.Django توسط توسعه‌دهندگانی با تجربه ساخته شده است. به همین دلیل،‌ جنگو از دردسرهای فراوان توسعه وب در امان مانده است؛ تا برنامه‌نویسان بتوانند بدون نیاز به «اختراع دوباره چرخ»، روی پروژه خود متمرکز شوند. جنگو رایگان و متن‌باز است. django نسبت به بسیاری از فریم‌ورک‌های دیگر، امکانات و ویژگی‌های بیش‌تری دارد و بسیاری از دردسرهای توسعه وب را از سر راه برداشته است.در ادامه مطلب آموزش جنگو تاریخچه‌ای از چگونگی خلق و پیدایش جنگو توسط توسعه‌دهندگان آن بیان شده است.تاریخچه جنگوجنگو در اوایل دهه هشتاد شمسی توسط آدرین هولواتی (Adrian Holovaty) و سایمون ویلیسون (Simon Willison) خلق شد. آن‌ها django را زمانی ساختند که توسعه یک وب اپلیکیشن با پایتون را شروع کرده بودند. در آن زمان، آن‌ها در روزنامه لارنس ژورنال (Lawrence Journal-World) کار می‌کردند. به گفته ویلیسون در Quora، در آن زمان و قبل از تحولات PHP5، هر دو آن‌ها از تلاش برای نگهداری سایت‌های بزرگ توسعه داده شده با PHP کلافه شده و علاقه شدیدی به پایتون پیدا کرده بودند.مطلب پیشنهادی: راهنمای کامل و رایگان جنگو برای تازه کارهاچرا جنگو توسعه داده شد ؟ابزارهای توسعه وب با پایتون در آن زمان، با استانداردهای مورد انتظار هولواتی و ویلیسون سازگاری نداشتند. به همین دلیل، آن‌ها تصمیم گرفتند که چارچوب نرم‌افزاری جنگو را توسعه دهند. جیکوب کاپلن‌ماس (Jacob Kaplan-Moss) نیز در مراحل ابتدایی توسعه جنگو استخدام شد. django، حدوداً بعد از دو سال به صورت عمومی و تحت گواهی‌نامه BSD منتشر شد. نام django، از جنگو راینهارت (Django Reinhardt)، نوازنده سرشناس گیتار برگرفته شده است.در اوایل خرداد ۱۳۸۷، اعلام شد که «بنیاد نرم‌افزاری جنگو» (Django Software Foundation | DSF)‌ به تازگی شکل گرفته است و این بنیاد، نگهداری جنگو را برعهده خواهد داشت. در ادامه مطلب آموزش جنگو و بخش «جنگو چیست»، به بیان کاربردهای رایج django‌ برای درک بهتر اهمیت آموزش جنگو پرداخته شده است.کاربردهای جنگودر این بخش از آموزش جنگو کاربردهای جنگو بیان می‌شود. جنگو به عنوان یک چارچوب نرم‌افزاری وب متن‌باز برای توسعه وب‌سایت‌های سریع، کاربردی، نگهداشت‌پذیر (Maintainable)، ایمن و دارای طراحی ساختارمند به کار می‌رود. همان‌طور که گفته شد، برای اولین بار از جنگو در توسعه یک وب اپلیکیشن برای یک ناشر روزنامه استفاده شد.در نتیجه، می‌توان از جنگو انتظار داشت که در مدیریت پروژ‌ه‌هایی با حجم‌ متنی،‌ فایل‌های رسانه‌ای و ترافیک بالا و یا هر چیزی که عملکردی شبیه به یک نشریه دوره‌ای مبتنی بر وب داشته باشد، عملکرد قابل قبولی را از خود به نمایش بگذارد.موضوع اصلی این مقاله در مورد مراحل اصلی مورد نیاز برای شروع یک پروسه تحت وب است. برای تکمیل این عملیات، ابتدا باید برنامه پایتون (Python) را نصب کنید و نحوه کار کردن با بسته مدیریتی این برنامه (pip) و محیط های مجازی را بلد باشید. البته برای انجام این کار نیازی نیست به شکل کامل برنامه نویسی بلد باشید، در همین حد که از نحوه کارکرد پایتون برای ایجاد چارچوب پروژه نهایی آگاهی داشته باشید، کافیست.در پایان این مقاله آموزشی، شما با نحوه انجام موارد زیر آشنا خواهید شد:راه اندازی یک محیط مجازینصب جنگوشناسایی ملزومات پروژهراه اندازی یک پروژه با جانگوپیاده سازی یک نرم افزار با جانگواز این مقاله می توانید به عنوان منبعی موثق برای ایجاد پروژه های بیشمار استفاده کنید و آنقدر این کار را تکرار کنید تا دستورات مهم و اصلی آن ملکه ذهنتان شود. اما قبل از هر چیز، یادگیری و اجرای مراحل زیر ضروری است. البته می توانید تمریناتی که در این مقاله داده شده است را انجام دهید تا مطالبی را که به صورت تئوری آموخته اید به مرحله اجرا در بیاورید.طراحی تمیز و مرتببرنامه هایی که با جنگو نوشته می شوند باید تا حد ممکن از طراحی تمیز استفاده کنند و همچنین فریمورک جنگو از امکانات پویا زبان پایتون مثل introspection استفاده می کند.طراحی و توسعه سریعاز اصولی که در حال حاضر می توانیم به عنوان یک امر مهم در طراحی وبسایت قلمداد کنیم توسعه با سرعت بالا است و اینکه نیاز نباشد برای هرگونه تغییری وقت زیادی را صرف کنیم. با استفاده از آموزش رایگان جنگو می توانیم توسعه سریع وبسایت ها را انجام دهیم.اتصال سستاز جمله اهداف فریمورک جنگو داشتن یک پشته با انسجام و اتصال قوی است. هر لایه در فریمورک جنگو نباید از لایه های دیگر اطلاع داشته باشد مگر اینکه ضروری باشد. مثلا وقتی قالب یک سایت را تغییر می دهیم نباید کاری با پایگاه داده ی نوشته ها و مقالات سایت کاری داشته باشیم و همینطور وقتی سئو وبسایت را بهینه سازی می کنیم نباید با نمایش صفحات سایت کاری داشته باشیم.مهمترین ویژگی های فریمورک جنگواز جمله اولین ویژگی های ساختاری جنگو می توانیم به معماری MVC آن اشاره کرد که دارای نقشه بردار رابطه ای شیء یا ORM‌ است. در این مدل معماری یک واسطه ای بین مدل های داده و بانک اطلاعاتی رابطی ایجاد می شود و همچنین سیستمی برای پردازش درخواست های HTTP با سیستم قالب های سایت تعبیه می شود. از مهمترین ویژگی های جنگو می توانیم به موارد زیر اشاره کنیم :بخش قالب و Template در جنگو از وراثت الگو گرفته است که از برنامه نویسی شی گرا بهره می برد.یک نوع فریمورک ذخیره سازی است که می تواند هر از کدام از روش های حافظه پنهان استفاده کند.پشتیبانی خوبی از کلاس های میان افزار دارد که آنها می توانند در بخش های مختلفی از پردازش درخواست دخالت کنند و عملکردهای سفارشی را ایجاد کنند.جنگو یک وب سرور مستقل جهت تست و توسعه وب و بسیار سبک است.جنگو سیستمی برای گسترش قابلیت های موتور تمپلیت دارد.بعنوان یک رست فریمورک که وسیله ای انعطاف پذیر و قدرتمند برای ایجاد API های وب می باشد شناخته می شود.همچنین دارای ویژگی های نرم افزاری مهم شامل : کامل بودن، همه کاره بودن، امنیت بالا، مقیاس پذیر، قابلیت نگهداری، قابلیت انتقال می باشد.آماده سازی محیط کاربرای شروع پروژه جدید ساخت برنامه کاربردی با جانگو، ابتدا یک پوشه جدید بسازید و وارد آن شوید. ما همه دستورات وارد شده در این مطلب را در پوشه shell ایجاد می کنیم. حالا در این پوشه، با استفاده از فرمان زیر یک محیط مجازی جدید ایجاد کنید:$ python3 -m venv envاین دستور محیط مجازی جدیدی با عنوان env در مسیر فعلی شما ایجاد می کند. بعد از این مرحله، باید محیط مجازی را با فرمان زیر فعال کنید:$ python3 -m venv envاگر فعال سازی با موفقیت انجام شود، شما باید نام محیط مجازی ساخته شده را (env) در ابتدای خط فرمان مشاهده کنید. مشاهده این نام به معنی تکمیل تنظیمات محیط مجازی شماست.آموزش کار کردن در محیط مجازی با پایتون و نحوه انجام تنظیمات تکمیلی در این نرم افزار بسیار مفصل است، اما برای کار با جانگو، در همین حد کافی است. در ادامه می توانید بسته django را نصب کنید.نحوه نصب جانگو و شناسایی ملزوماتبعد از ایجاد و فعال سازی محیط مجازی در پایتون، می توانید برنامه جانگو را از طریق دستور زیر نصب کنید:(env) $ python -m pip install djangoاین دستور پکیج django را با استفاده از بسته مدیریتی pip از لیست بسته های پایتون (PyPI) فراخوانی می کند. بعد از اینکه مراحل نصب به پایان رسید، می توانید ملزومات مورد نیاز را از مسیری که جانگو نصب شده است، شناسایی کنید:(env) $ python -m pip freeze > requirements.txtبا اجرای این فرمان لیست اسامی و نسخه های تمامی بسته های خارجی پایتون که در محیط مجازی شما وجود دارند در قالب فایلی requirements.txt نمایش داده می شود. این فایل همچنین شامل بسته django و سایر متعلقات آن است.نکته: نسخه های زیادی از برنامه جانگو ارائه شده است. معمولاً برای شروع یک پروژه جدید استفاده از آخرین نسخه نرم افزار بهترین گزینه است، اما شاید مجبور شوید برای پیاده سازی یک پروژه خاص از نسخه متفاوتی استفاده کنید. شما می توانید هر نسخه از جانگو را که می خواهید با آن کار کنید با اضافه کردن شماره آن نسخه در خط فرمان نصب کنید:(env) $ python -m pip install django==2.2.11با اجرای این دستور نسخه 2.2.11 جانگو جایگزین آخرین نسخه نصب شده در محیط مجازی شما خواهد شد. برای نصب آن، فقط کافیست عدد نسخه مورد نظرتان را بعد از علامت (==) و با فاصله از کلمه جانگو تایپ کنید.