آشنایی با جنگو || فریمورک تحت وب || (فریمورک جنگو)

آشنایی با جنگو || فریمورک تحت وب || (فریمورک جنگو)

2 ديدگاه

فریمورک جنگو

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

جنگو (django) یک فریمورک سطح بالای پایتون است که به شما اجازه می دهد

تا اپلیکیشن های تحت وب خود را با سرعت و دقت بالایی ایجاد کنید. جنگو از معماری mvc استفاده می کند

و به شما این امکان را می دهد تا تمرکز خود را بر روی نیازهای هر پروژه بگذارید

و از نوشتن کدهای تکراری برای کارهای تکراری پرهیز کنید.

 هدف اصلی جنگو این است که ما بتوانیم سایت های پیچیده و وابسته به دیتابیس را با تکیه بر قابلیت استفاده مجدد

و اتصال گرا بودن اجزای مختلف اپلیکیشن طراحی کنیم.

فریمورک جنگو

ارث بری جنگو از پایتون

همان طور که اشاره شد، جنگو یکی از فریمورک های زبان پایتون است و به طور کامل با این زبان پیاده سازی شده است،

به همین دلیل اکثر ویژگی های خود را از پایتون به ارث برده است. برخی از این ویژگی ها عبارتند از :

سینتکس کوتاه : سینتکس زبان پایتون بسیار کوتاه و در عین حال ساده و قابل فهم است.

این یعنی شما با صرف زمان کمتری می توانید کارهای بیشتری انجام دهید.

تعریف متغیر : تعریف متغیر در پایتون به صورت داینامیک صورت می گیرد

و پیچیدگی های برخی زبان های دیگر مانند جاوا را ندارد.

مفسری : پایتون یک زمان مفسری است و برای اجرا تنها به مفسر نیاز دارد.

این ویژگی باعث می شود تا نتایج تغییرات روی کدها بلافاصله قابل ملاحطه باشد.

الگوی طراحی mvc در جنگو

جنگو بر مبنای معماری mvc  پیاده سازی شده است. معماری mvc یک روش برای توسعه نرم افزار است که در آن نحوه تعریف کردن و دسترسی داشتن به داده ها (model) از منطق برنامه (controller)  و آن نیز از نحوه ارتباط (view) به صورت جدا پیاده سازی می شود. مزیت معماری  mvc  این است که هر یک از بخش های برنامه به صورت مستقل کار میکنند و در صورت نیاز به تغییر، هر یک از این بخش ها بدون تاثیر روی سایر قسمت ها تغییر می کنند.

الگوی معماری mvc اختصاصی جنگو mvt  نام دارد و به سه بخش زیر تقسیم می شود :

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

Template  : یک template یا قالب جنگو یک فایل html است که برای جدا کردن داده های اپلیکیشن از داده هایی که قرار است به کاربر نمایش داده شود، استفاده می شود. علاوه بر این، یک قالب جنگو وظیفه دارد تا از دوباره کاری ها جلوگیری کند. مزیت استفاده از این قالب جنگو این است شما به عنوان برنامه نویس بک اند نیازی به داشتن اطلاعات زیاد از بخش فرانت اند ندارید و حتی می توانید در طراحی پروژه های خود از قالب های آماده استفاده کنید.

View : view ها واسط های اپلیکیشن های جنگو هستند و وظیفه آن ها برقراری ارتباط میان template  و model ها است.  یک view  در اپلیکیشن جنگو تصمیم می گیرد که چه داده هایی باید از پایگاه داده به قالب مورد نظر تحویل داده شوند و یا چه کارهایی نیاز است بر روی ورودی ها انجام شود . هر یک از view ها توسط یک تابع یا کلاس پایتون نشان داده می شوند و یک template مرتبط  دارند.

علاوه بر سه بخش بالا یک بخش دیگری به نام  urls وجود دارد که بدون استفاده از آن هیچ کدام از موارد بالا بدرد ما نخواهند خورد. هنگامی که کاربر روی یک لینک کلیک می کند، یک درخواست برای url مربوط به آن به جنگو فرستاده می شود و جنگو تصمیم می گیرد که کدام view باید با این درخواست تعامل داشته باشد. سپس view مورد نظر فراخوانی می شود و محتوای مورد نیاز کاربر را در یک template جنگو به صفحه نمایش کاربر می فرستد.

فریمورک جنگو

اصل DRY  در جنگو (don’t repeat yourself)

این اصل به طور واضحی به مبحث ارث بری در جنگو می پردازد. هر وب اپلیکیشن از تعداد زیادی صفحه html تشکیل شده است

که قسمت زیادی از محتوای این صفحات تکراری است.

در جنگو برای جلوگیری از این تکرار یک parent template (قالب پایه یا اصلی) تعریف می شود که شامل قسمت هایی است

که در همه ی صفحات html ما مشترک هستند(مواردی مانند header و footer و …) و بقیه قالب ها از این قالب ارث بری می کنند.

جنگو از ارث بری چندگانه پشتیبانی می کند و template های شما ممکن است در چند سطح ارث بری داشته باشند.

آشنایی با جنگو || فریمورک تحت وب || (فریمورک جنگو)

امنیت داده ها در جنگو

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

و اجازه دادن به اجرای کدها در template این ناامنی بیشتر هم می شود.

راهکار جنگو برای این مشکل بسیار ساده است : جلوگیری  از اجرای کدها  قالب جنگو.

تگ های قالب جنگو فقط منطق را به کاربر نمایش می دهند که شامل موارد زیر است :

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

کارهایی که نمی توان با قالب جنگو انجام داد :

  • مقدار دادن به یک متغیر
  • اجرای کدهای پایتون
  • کارهای منطقی پیشرفته

جنگو به طور پیش فرض ویژگی های امنیتی  زیر را به قالب های خود اضافه می کند:

  • رها کردن رشته ها به صورت خودکار
  • محافظت در برابر اسکریپت ها و اشخاص جعلی که قصد عبور از سایت را دارند.

چرا جنگو بهترین انتخاب برای توسعه وب اپلیکیشن هاست ؟

۱ – افزایش سرعت توسعه

ارث بری جنگو از ویژگی های پایتون به همراه پکیج های متنوع و گسترده به شما این امکان را می دهد

تا وب اپلیکیشن های خود را با سرعت بالایی توسعه دهید.

۲- مقیاس پذیری بالا

وجود ابزاری مانند Nginx به جنگو این امکان را می دهد تا پیکربندی هایی را فراهم کند

که اپلیکیشن شما بتواند درخواست های بیشتری را مدیریت کند. علاوه بر این عملیات کش کردن داده ها

در جنگو به کمک ابزار MemeCache خوبی انجام می شود.

۳- جامعه پشتیبانی مناسب

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

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

این جامعه پشتیبانی قدرتمند به شما کمک می کند

تا در صورت بروز مشکل در فرایند توسعه، به سرعت مشکلات خود را حل کنید.

امروزه سایت ها و انجمن های مختلفی مانند  django girls  وجود دارند

که در صورت بروز مشکل می توانید به آن ها مراجعه کنید.

۴- امنیت بالا

همه توسعه دهندگان وب به خوبی از خطرهای موجود در اینترنت باخبرند

و به دنبال راهی برای حفاظت از داده های سایت و جلوگیری از نفوذ به آن هستند. جنگو تلاش می کند تا

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

۵ – رابط کاربری مناسب برای فعالیت های مدیریتی

جنگو یک محیط کاربری مناسب ( به نام صفحه admin) را برای فعالیت های مدیریتی فراهم می کند

که به شما این امکان را می دهد تا اپلیکیشن های خود را به راحتی مدیریت کنید.

۶- پشتیبانی از معماری mvc

پشتیبانی از معماری mvc  یکی از نقاط قوت جنگو است که به شما کمک می کند

تا اپلیکیشن های قابل توسعه تری طراحی کنید و از دوباره کاری ها پرهیز کنید.

 

برای مطالعه مقالات بیشتر در زمینه پایتون کلیک کنید.

منبع خارجی در زمینه پایتون

 

2 ديدگاه

  1. 1398-07-19

    ممنون از سایت خوبتون

  2. 1398-07-19

    اگه میشد به صورت ویدیویی اموزش بدین عالی میشد بازم دمتون گرم

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.