Django چیست ؟ و چه ویژگی هایی دارد ؟

Django چیست ؟ و چه ویژگی هایی دارد ؟

Django چیست ؟ و چه  ویژگی هایی دارد ؟What is Django? Advantages and Disadvantages

Django چیست ؟ و چه ویژگی هایی دارد ؟

توسط : admin
پایتون یکی از مشهورترین زبان های برنامه نویسی در جهان است و دومین زبان پربازدید در پروژه های GitHub در سال 2017 است. بنابراین اگر به پایتون و توسعه وب علاقه دارید ، به احتمال زیاد درباره جنگو شنیده اید. افزایش شهرت فریمورک های وب ، امروزه باعث می شود یادگیری فریمورک جدید و انتخاب اینکه با کدام یک می خواهید کار کنید ، بسیار گیج کننده باشد. امروز ، ما نگاهی گسترده به Django می اندازیم تا بتوانیم با این فناوری شگفت انگیز آشنا شویم.

 

جنگو چیست ؟

Django یک چارچوب وب MVT است که برای ساخت برنامه های وب استفاده می شود. جنگو خود را به عنوان فریمورک وب با مخزن غنی معرفی کرده که با استحکام و سادگی برای کمک به برنامه نویسان وب برای نوشتن کدی تمیز ، کارآمد و قدرتمند بوجود آمده است . جنگو یکی از معروف ترین چارچوب های وب موجود در جهان و یکی از پرکاربردترین چارچوب ها نیز هست. از اینستاگرام ، یوتیوب ، Google گرفته تا حتی ناسا برای وب سایت خود از آن استفاده می کنند . بنابراین بیایید آن را تجزیه کنیم و درباره آن بیشتر بدانیم.

 

ساختار جنگو :

django-project-structure

 

 

جنگو از معماری MVT پیروی می کند که مخفف Model-View-Template است. MVT نوعی تنوع سازه ای از ساختار معروف MVC است ، به همین دلیل شما احساس می کنید که کاملاً مشابه کار با چارچوبهای دیگر است. هنگامی که سرور Django یک درخواست را دریافت می کند ، روتر URL درخواست را به نمای مناسب مپ می کند. سپس نما از طریق مدل ها داده را می گیرد ، قالب را پر کرده و آن را برای کاربر ارسال می کند.

 

Models : مدل ها در جنگو

ساختار مدل در جنگو

 

جنگو برای چه مواردی استفاده میشود ؟

مدل جنگو از لایه ای قدرتمند ORM استفاده می کند که کار با بانک اطلاعات و داده را ساده  و روند توسعه را تسریع می کند.

بدون استفاده از Object-Relational-Mapping ، توسعه دهندگان باید خود جدول ها را ایجاد کرده و کوئری یا متد ها را تعریف کنند که بعضی اوقات نوشتن دستورات مستقیم SQL تا حدودی پیچیده و دشوار است.

 

لایه ORM به شما امکان می دهد تمام تعاریف جدول را با کد پایتون خیلی ساده بنویسید ، که پایتون آن را  به زبان پرس و جو اس کیو ال ترجمه میکند ، همچنین عملکرد CRUD را سرعت میبخشد .

در حقیقت ، توسعه دهنده لزوماً نیازی به شناختن مجموعه پیچیده SQL یا ترجمه آن را ندارد ، اما شایان ذکر است که درک SQL به شما امکان می دهد کوئری های بهتر و سریعتر بنویسید و همچنین وب سایت خود را ایمن تر کنید.

 

بر خلاف سایر فریم ورک ها ، مدل ها همه در یک فایل قرار دارند ، معمولاً model.py ، که ممکن است باعث شلوغ شدن پروژه های بزرگتر شود.

 

جنگو از بسیاری از سیستم های پایگاه داده پشتیبانی می کند. SQLite برای آزمایش و توسعه واقعا مناسب است زیرا می تواند بدون نیاز به نصب نرم افزار  استفاده شود. برای تولید می توانید به سراغ MYSQL یا PostgreSQL بروید ، و اگر به دنبال یک بانک اطلاعاتی NoSQL هستید ، می توانید از MongoDB با Django استفاده کنید.

 

Templates: قالب ها در جنگو

از لایه قالب برای جدا کردن بخش داده ها از قسمتی که در واقع توسط کاربر مشاهده می شود، استفاده می گردد . لایه قالب مشابه لایه ویوو در MVC است. اگر با قالب های دیگر آشنا نیستید ، در جنگو به همین صورت است. شما از کد HTML  استفاده می کنید که بعداً با تمام داده های تزریق شده در HTML کامپایل می شود. البته در صورت ایجاد اسناد XML یا پرونده های JSON و غیره فرمت هایی برای قالب های غیر از HTML  نیز وجود دارد ...

 

قالب بندی لایه ui در جنگو

 

DRY یکی از اصول اصلی طراحی قالب جنگو است و یک الگوی طراحی است که مخفف Don’t-Repeat-Yourself نیست. این دقیقاً همان چیزی است که به نظر می رسد ، به این معنی که حداقل در اکثر موارد نباید کپی و چسباندن کد را انجام دهید. در عوض ، به عنوان مثال ، الگوی شما باید به اجزای قابل استفاده مجدد مانند نوار پیمایش جانبی ، نوار پیمایش اصلی ، سرصفحه صفحه ، پاورقی صفحه و غیره تقسیم شود. این کار تکرار را به حداقل می رساند و باعث می شود کد های کارآمد و تمیزتری بنویسید.

 

یکی از مواردی که جنگو خود را از بقیه متمایز می کند این است که امنیت را جدی می داند. که در واقع بر نوشتن الگو تأثیر می گذارد.

 

به عنوان مثال ، در ریل ، می توانید کد روبی  را درون نماهای خود بنویسید - نه این که بگویید این کاری است که باید انجام دهید - و همچنین می توانید مقادیر را به متغیرها اختصاص دهید.

 

در جنگو ، اصلاً اینگونه نیست ، شما نمی توانید کد پایتون را در قالب اجرا کنید و نمی توانید یک مقدار را به یک متغیر اختصاص دهید. به عبارت ساده تر ، Django اجرای کد در لایه قالب را ممنوع می کند و فقط به منطق نمایش دسترسی می دهد ، که یک راه حل ساده اما بسیار مؤثر برای بسیاری از خطرات امنیتی  وب است.

 

Views : ویوو ها در جنگو 

ویوو در جنگو لایه منطق آن است. این لایه مسئول پردازش درخواست کاربر و ارسال پاسخی معتبر است. این لایه داده ها را از مدل خارج می کند ،و جهت نمایش به الگو تحویل داده ، یا می تواند مقداری پردازش بر روی داده ها را از قبل تحویل ، انجام دهد. امروزه ، ویوو ها در Django می توانند توسط توابع درخواست ها پردازش کرده و ریسپانس یا پاسخ مناسب را برگرداند ،که نسبت به روش مشابه با کنترل کننده های Laravel و Rails قابلیت های بسیار بیشتری دارد .

 

 URL router  (مسیر دهی در جنگو):

گفته می شود  آدرس دهی در Django از سایر چارچوب ها مانند  ریل یا لاراول ، پیچیده تر است. مشکلی که در آن وجود دارد این است که از عبارات منظم استفاده می کند که استفاده از آن برای مبتدیان آسان نیست. با این حال ، ساختار روتر URL به هیچ وجه پیچیده نیست ، فقط ممکن است با نحوه نوشتن آن در ابتدا راحت نباشید.

 

مزایای جنگو :

 

1- انباره غنی از کدهای آماده :

جنگو به خود را به عنوان یک چارچوب با انباره ای غنی ، افتخار می کند. معنی این امر این است که بسیاری از موارد را درون خود دارد ، که بسته به برنامه خود ممکن است استفاده کنید یا ممکن است از آن استفاده نکنید. به جای نیاز به نوشتن کد خود ، فقط باید بسته هایی را که قصد استفاده از آن را دارید ، وارد کنید.

 

این بخشی از قواعد مربوط به الگوی پیکربندی در Django  است ، و به شما امکان می دهد تا از راه حل های اجرا شده توسط متخصصان کلاس جهانی استفاده کنید. انباره جنگو طیف گسترده ای از موضوعات را شامل می شود:

  • احراز هویت با بسته auth
  • واسط مدیر با بسته مدیریت
  • مدیریت جلسه با بسته Sessions
  • مدیریت پیام های موقت یا جلسه محور با بسته پیام ها
  • تولید نقشه سایت گوگل XML با بسته نقشه سایت
  • ویژگی های ویژه Postgres با بسته Postgres 
  • دارای انواع تایپ ها

 

مشاهده تمام پکیج های آماده در جنگو

 

2- پایتون :

از آنجا که جنگو از پایتون استفاده می کند ، بخشی از شهرت و قدرت پایتون را به نفع خود می کند. پایتون مسلماً تنها  زبان برنامه نویسی  با یادگیری آسان برای مبتدیان نیست، ولی در دوره های مقدماتی علوم رایانه در سراسر جهان بسیار محبوب است. بررسی توسعه دهندگان Stackoverflow 2017 نشان داد که پایتون امروزه رایج تر است . همچنین در صنعت برای PHP و Python نسبت به C # و C ++ هزینه بهتری پرداخت می کنند.

 

3- جامعه کاربری :

جامعه Django یکی از بهترین موارد در نوع خود است ، آنها در ساختن این چارچوب خیلی دوستانه برای مبتدیان و ایجاد ثبات در چارچوب ضمن افزودن ویژگی های جدید ، مفید و فعال هستند. مستندات جنگو کاملاً تکمیل است و به عنوان یک آموزش مستقل مفید است ، به شما کمک می کند تا با تمام ویژگی های آن آشنا شده تا بتوانید از آن به عنوان منبع اصلی اطلاعات استفاده کنید.

 

4- مقیاس پذیری :

اکثر توسعه دهندگان ، وقتی به انتخاب یک فریمورک فگر میکنند باید تمام ویژگ های مورد نیاز حال و آینده خود را لحاظ کنند . به همین دلیل انتخاب یک چارچوب مقیاس پذیر برای بسیاری از آنها کاملاً ضروری است ، و جنگو نیز همان انتخاب است. جنگو  امکان را به شما می دهد تا اقدامات مختلفی را در مورد مقیاس پذیری انجام دهید ، همانطور که نیگل در مقاله خود به مواردی از قبیل اجرای سرورهای جداگانه برای بانک اطلاعاتی ، رسانه ها و برنامه خود یا حتی استفاده از خوشه بندی یا توازن بار برای توزیع برنامه، اشاره کرده است .

 

5- Built-in Admin (مدیریت درونی) :

تیم جنگو هنگام ایجاد چارچوب کاملاً متفکر بودند و رضایت کاربر و مشتری را در ذهن خود نگه داشتند. ایجاد یک رابط مدیریت در سمت سرور  فقط برای اینکه بتوانید داده های خود را با عملیات اصلی CRUD مدیریت کنید ، غیر منطقی است. به همین دلیل است که Django یک رابط مدیریت حرفه ای و متنوع ارائه می دهد ، که توسعه دهندگان هر چیزی که به آن نیاز دارند پوشش میدهد .

 

 

معایب جنگو 

در حالی که جنگو یک چارچوب شگفت انگیز است ، اما چند نکته منفی وجود دارد که ممکن است برای شما مشکل ایجاد کند. ابتدا ، آدرس دهی که مشخص شده با عبارات منظم است ، حداقل برای مبتدیان انجام آن به آسانی نیست. همچنین برای پروژه های کوچک احساس  میکنید کمی دست و پا گیر است  ولی بعضی از افراد آن را کاملاً مخصوص پروژه های بزرگ می دانند زیرا مدل ها همه در یک پرونده واحد قرار دارند. خطاهای قالب بصورت پیش فرض هشدار داده نمیشوند ، بنابراین اگر ندانید خطا از کجاست ، ممکن است وقت زیادی را صرف کنید تا بفهمید چه اشتباهی در برنامه وجود دارد یا حتی بدتر ،ممکن است نفهمید که اصلا برنامه مشکل دارد یا نه .

 

برای یادگیری جنگو از کجا شروع کنیم :

ابتدا باید از پایتون شروع کنید و جریان طبیعی برنامه های وب را درک کنید. می توانید بهترین توصیه های آموزش جنگو را در انجمن های برنامه نویسی بیابید.

 

می توانید با توجه به سبک یادگیری خود ، بهترین آموزش آموزش مبتنی بر فیلم یا کتاب را انتخاب کنید . برای تسلط بر پایتون ، دوره بیل وینمن در Lynda یک کلاس بزرگ  است و همچنین می توانید Udemy را برای دوره های آموزشی در پایتون و جنگو بررسی کنید. اسناد رسمی سایت جنگو نیز مکان خوبی برای شروع است و همانطور که قبلاً گفتیم آموزشهای کاملی ارائه می دهد.

 

 

نظرات :

در عرض چند دقیقه برای ایجاد حساب

کاربری خود اقدام کنید


اکنون حساب کاربری خود را ایجاد کنید!


ایجاد حساب کاربری

با ثبت نام در نیلوتک از آخرین بروز رسانی های آموزش ها و مقالات سایت مطلع شوید