ماهیت جنگو
جنگو، فریمورک ویا همان چارجوبی میباشد که ایجاد یک وبسایت را با استفاده از بستر پایتون آسانتر میکند. همچنین جنگو بر قابلیت استفاده مجدد از مؤلفهها، تأکید دارد که در اصطلاح به آن DRY گفته میشود که مخفف اصطلاح خودت تکرار نکن - Don't Repeat Yourself – میباشد و دارای ویژگیهای آماده برای استفاده همانند سیستم احراز هویت و اعتبارسنجی کاربران، اتصال پایگاه داده و عملیات CRUD معرف عملیات ایجاد، خواندن، ویرایش و حذف (Create Read Update Delete) و ... است.
همچنین جنگو از الگوی طراحی MVT (Model-View-Template) پیروی میکند که جداسازی واضحی بین مدلهای داده (لایه داده Model)، نماها (لایه منطقView ) و قالبها (لایه ارائه Template) ایجاد میکند.
در ادامه، شرح مفصلی برای هر یک خواهد رفت ولی در اینجا، میتوان تعاریف کوتاهی برای هر بخش ارائه نمود:
◄ مدلها (Model)
به عنوان لایه داده یاد میشود، پایگاه داده و یا به عبارتی، مجموعه دادههایی از یک پایگاه داده را شامل میشود.
◄ نماها (View)
کنترل کننده و مدیریت درخواستها برای نمایش محتوای دادهها در تمپلیتهای هدف در آدرس URL مورد درخواست کاربر میباشند که به درستی به آن لایه منطق گفته میشود.
◄ تمپلیتها(Template)
فایلهای حاوی طرحبندی صفحات وب HTML همراه با فایل استایلدهی CSS، با منطق نحوه نمایش دادهها JavaScript را شامل میشوند که از آن با عنوانهای لایه ارائه، رابط کاربری و یا Frontend نیز یاد میشود.
از مهمترین مزیتهای جنگو برای ایجاد یک وبسایت، فراهم آوردن یک چارچوب وب قدرتمند برای توسعه سمت سرور – Backend – و رابط کاربری – FrontEnd – به صورت همزمان میباشد. جداسازی MVT به توسعهدهندگان اجازه میدهد به طور همزمان بر روی جنبههای مختلف برنامه کار کنند. توسعهدهندگان قسمت Frontend میتوانند با استفاده از کدهای HTML، CSS و JavaScript واسط کاربری پاسخگو و تعاملی را طراحی کنند، در حالی که توسعهدهندگان سمت سرور یا Backend، منطق و تغییر دادهها را مدیریت میکنند.
در مبحث امنیت نیز جنگو چندین معیار امنیتی را به طور پیشفرض در بر میگیرد، محافظت در برابر آسیبپذیریهای رایج وب از جمله اسکریپت بین سایتی (XSS)، جعل درخواست بین سایتی (CSRF) و تزریق SQL. همچنین یک سیستم احراز هویت قوی نیز با پشتیبانی از مدیریت کاربر، مجوزها و مدیریت session ارائه میدهد. این ویژگیها کمک میکنند تا اطمینان حاصل شود که پروژه هم در قسمت Frontend و هم در Backend ایمن باقی بماند و دادههای کاربر محافظت شوند در عین حالی که یکپارچگی کلی سیستم نیز حفظ گردد.