جنگو چیست؟ مزایا و معایب استفاده از Django
پایتون یکی از محبوبترین زبانهای برنامهنویسی جهان است و دومین زبان پر استفاده در پروژههای Github در سال ۲۰۱۷ بوده. بنابراین اگر شما به زبان برنامهنویسی پایتون علاقمند هستید، مطمئنا درباره فریمورک قدرتمند وب پایتون یعنی Django چیزهایی شنیدهاید. محبوبیت رو به افزایش فریمورکهای وب، یادگیری و انتخاب میان آنها را تا حدی دشوار کرده است. امروز در این پست، به بررسی گسترده جنگو میپردازیم تا شروع قدرتمندی را با این تکنولوژی فوقالعاده داشته باشیم.
جنگو چیست؟
Django یک فریمورک MTV برای ساخت اپلیکیشنهای وب است. جنگو به برنامهنویسان وب کمک میکند تا کدهای تمیز، کارآمد و قدرتمند بنویسند. علاوه بر اینکه در لیست محبوبترین فریمورکهای وب جهان حضور دارد، جنگو یکی از پر استفادهترین تکنولوژیها برای توسعه وب میباشد. این فریمورک توسط اینستاگرام، یوتیوب، گوگل و حتی ناسا برای توسعه وبسایتشان بکار رفته است.
ساختار Django
جنگو از معماری سه لایه MVT استفاده میکند که مخفف Model -View – Template میباشد. این معماری نوع تغییر داده شده MVC برای فریمورک جنگو بوده و به آن بسیار شبیه است. هنگامی که سرور جنگو، یک request (درخواست) دریافت میکند، مسیریاب URL آن request را به view مناسب هدایت میکند. سپس لایه view داده را از لایه model دریافت میکند و با استفاده از متدها و فانکشنهایی که در آن نوشته میشود، لایه template را پر میکند و آنرا به کاربر ارسال میکند.
مدلها (Models) در Django
در فریمورک جنگو با استفاده از مدل قدرتمند و بسیار مفید ORM، انجام عملیات مختلف با دیتابیس بسیار ساده شده و پروسه توسعه تسریع یافته است. ORM مخفف Object-Relational-Mapping است و بدون آن، توسعه دهنده باید تمامی جداول را خودش ایجاد کند و برای انجام هرگونه عملیات با دیتابیس، کوئری مربوطه را باید خودش بنویسد که گاها این روند میتواند در پروژههای بزرگ بسیار پیچیده و کسل کننده باشد.
ORM به شما این امکان را میدهد تا تمامی کوئریهای دیتابیس را با دستورات ساده پایتون اجرا کنید و همچنین متدهای آمادهای در آن برای پیادهسازی عملیات crud با دیتابیس تعبیه شدند. در حقیقت، برنامهنویس نیازی ندارد تا به تمامی روشهای پیچیده SQL را یکجا مسلط باشد.
برخلاف سایر فریمورکها، تمامی مدلها در یک فایل به اسم models.py قرار میگیرند و همین مورد میتواند در روند توسعه پروژههای بزرگ بسیار مفید و کارآمد باشد. Django از دیتابیسهای بسیاری پشتیبانی میکند. SQLite برای توسعه و تست کردن بسیار مناسب است چون هنگام نصب Django بصورت پیش فرض نصب میشود و نیازی به نصب برنامه خاصی نیست. برای Production میتوانید از MYSQL و PostgreSQL استفاده کنید و اگر میخواهید از NoSQL ها استفاده کنید، میتوانید از MongoDB با جنگو استفاده کنید.
Template ها در جنگو
لایه template مشابه لایه view در معماری MVC است و هدف آن نمایش داده و اطلاعات به کاربر بوده و در حقیقت منطق ظاهری برنامه (Display Logic) میباشد. اگر شما با templating در زبانها و فریمورکهای دیگر از جمله لاراول آشنا باشید، تقریبا در جنگو هم به این شکل است. شما از یک سینتکس مشابه HTML استفاده میکنید که بعدا به HTML کامپایل میشود و شامل تمامی دادههای مربوطه میباشد. البته که فرمتهای غیر HTML هم وجود دارند، مثلا اگر خواستید میتوانید از سندهای XML یا فایلهای JSON و … استفاده کنید.
Views در جنگو
View در جنگو لایه بیزینس از معماری سه لایه MVT است. این لایه شامل فانکشنها و متدهایی میشود که موجب دریافت و پردازش درخواست کاربر و ارسال نتیجه معتبر برای کاربر میشود. این لایه داده را از Model دریافت میکند و به هر کدام از template ها دسترسی به داده خاصی را میدهد.
مزایای جنگو
- پکیج اهراز هویت (Authentication)
- پنل ادمین پیشفرض و بسیار ماژولار
- پکیج Sessions برای مدیریت Session ها
- مدیریت پیامهای موقت یا پیامهای Session-based با استفاده از پکیج Messages
- تولید Google sitemap XML یا استفاده از پکیج Sitemaps
- بر پایه پایتون
- یادگیری ساده و تسریع روند کدنویسی و توسعه پروژه
ایکس جنگو
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید