🔶 جنگو
🔶 بخش اول
🔻 تاریخچه جنگو
🔻 مفهوم فریمورک
🔻 مفهوم ORM
🌐 منابع :
🔗 ORM : Open
🔗 Django : Open
🔖 #Python, #پایتون, #Django, #جنگو, #orm, #فریمورک
👤 ȺʍìɾⱮօհąʍʍąժ
💎 Channel: @DevelopixPython
🔶 بخش اول
🔻 تاریخچه جنگو
جنگو (Django) یک فریمورک قدرتمند و متنباز است که به زبان پایتون برای توسعه وب نوشته شده است و به توسعهدهندگان کمک میکند سریعتر، بهتر و امنتر برنامههای تحت وب را ایجاد کنند. این فریمورک با معماری MTV (Model-Template-View)، امکانات پیشرفتهای مثل مدیریت خودکار دیتابیس، احراز هویت کاربر، و ابزارهای امنیتی قدرتمند ارائه میدهد.
جنگو اولین بار در سال ۲۰۰۳ توسط گروهی از توسعهدهندگان در یک شرکت خبری به نام Lawrence Journal-World در کانزاس آمریکا توسعه داده شد. هدف اولیه از ساخت آن، تسریع فرآیند توسعه وبسایتهای خبری بود که نیازمند بهروزرسانیهای مکرر و عملکرد بالا بودند.
نام جنگو از جنگو راینهارت (Django Reinhardt)، نوازنده برجسته گیتار جاز، الهام گرفته شده و هدف از اینکار بخاطر این بوده که توسعهدهندگان این فریمورک میخواستند سرعت و انعطافپذیری این نوازنده را در نام محصول خود منعکس کنند.
همچنین در سال ۲۰۰۵، جنگو بهصورت متنباز منتشر شد و از آن زمان به یکی از محبوبترین فریمورکهای توسعه وب تبدیل شده است. از ابتدا، تیم جنگو بر روی ارائه ابزارهایی برای مدیریت پیچیدگیهای توسعه وب، مانند احراز هویت، مدیریت دیتابیس، و امنیت، تمرکز دارد و امروز جنگو توسط یک جامعه بزرگ از توسعهدهندگان پشتیبانی میشود و در پروژههای متنوعی، از وبسایتهای کوچک تا اپلیکیشنهای پیچیده، استفاده میشود.
🔻 مفهوم فریمورک
فریمورک (Framework) یک بستر یا چارچوب آماده است که ابزارها، کتابخانهها، و قوانین از پیش تعریفشدهای را برای تسهیل (آسان کردن) و تسریع (افزایش سرعت) فرآیند توسعه ارائه میدهد. به عبارت دیگر، فریمورکها به توسعهدهندگان کمک میکنند تا به جای شروع از صفر، از ساختارها و الگوهای از پیش طراحیشده استفاده کنند و بر بخشهای خاص پروژه تمرکز بیشتری داشته باشند.
بر خلاف برنامههایی که در حالت عادی نوشته می شود که احتمالا شامل یک و یا مجموعهای از فایلهای پایتونی است و برنامهنویس بسته به نیاز پروژه از کتابخانه های مختلف استفاده میکند، در فریمورک مدیریت نصب و استفاده لایبریها به وسیله فریمورک اتفاق میفتد.
هنگام استفاده از فریمورک برنامه نویس موظف است از ساختار فریمورک پیروی کند و محتوای مربوط به پروژه را بر اساس قوانین از قبل تعریف شده قرار دهد. برای مثال، جنگو، که یک فریمورک برای توسعه وب است، هنگام استفاده یک ساختار از قبل تعیین شده ایجاد میکند که شامل فایلها و دایرکتوریها است و کدهای مربوط به views و urls و configurations پروژه در فایلهای مشخص قرار میگیرد. این ساختار باعث می شود که درصد خوانایی کد افزایش پیدا کند و پروژه به بخشهای کوچکتری تقسیم شود.
از ویژگی های کلیدی فریمورک می توان به ساختاردهی پروژه، ابزارهای آماده، افزایش بهرهوری، امنیت اشاره کرد.
🔻 مفهوم ORM
مدیریت دیتابیس در جنگو به وسیله ORM اتفاق میفتد، ORM یا Object-Relational Mapping یک تکنیک در برنامهنویسی است که ارتباط بین اشیاء (Objects) در برنامه و جداول پایگاه داده را فراهم میکند در واقع orm پلی بین پارادایم برنامه نویسی OOP و پایگاه داده است. به زبان ساده، ORM به توسعهدهندگان اجازه میدهد بدون نیاز به نوشتن مستقیم کدهای SQL، با پایگاه داده کار کنند.
در برنامهنویسی شیگرا، دادهها معمولاً به صورت اشیاء ذخیره و مدیریت میشوند، در حالی که database دادهها را به صورت جدول ذخیره میکنند. ORM این دو دنیا را به هم متصل میکند و امکان تعامل بین آنها را سادهتر می کند.
استفاده از ORM سبب افزایش روند توسعه، افزایش امنیت و کاهش هزینه می شود.
🌐 منابع :
🔗 ORM : Open
🔗 Django : Open
🔖 #Python, #پایتون, #Django, #جنگو, #orm, #فریمورک
👤 ȺʍìɾⱮօհąʍʍąժ
💎 Channel: @DevelopixPython
🔥11👍3
🔶 جنگو
🔶 بخش دوم
🔻 فلسفه معماری MVC
🔻 تاریخچه معماری MVC
🔻 بررسی معماری MVC
🔻 بررسی معماری MVT
🔻 معماری MVT در هنگام استفاده از API
🔻 نتیجهگیری
🌐 منبع تکمیلی
🔖 #Python, #پایتون, #Django, #جنگو, #orm, #فریمورک
👤 ȺʍìɾⱮօհąʍʍąժ
💎 Channel: @DevelopixPython
🔶 بخش دوم
🔻 فلسفه معماری MVC
فلسفه معماری MVC (Model-View-Controller) براساس تفکیک مسئولیتها در طراحی و توسعه نرمافزار است. در گذشته توسعه و پیادهسازی بخشهای مختلف برنامه نظیر بخش رابطه کاربری، مدیریت داده و بخش کنترلکننده در یک فایل پیاده سازی میشد و همین موضوع افزایش پیچیدگی، کاهش مقیاس پذیری و سخت شدن توسعه و ترمیم کدها را به همراه داشت و در نتیجه این موضوع سبب شد تا معماری تحت عنوان MVC ایجاد شود.
🔻 تاریخچه معماری MVC
معماری MVC در سال 1979 توسط Trygve Reenskaug در مرکز تحقیقاتی Xerox PARC و در حین کار با زبان Smalltalk معرفی شد. هدف این معماری جداسازی منطق کسبوکار از رابط کاربری بود تا نرمافزارها انعطافپذیرتر و قابل نگهداریتر باشند. MVC ابتدا در سیستمهای گرافیکی Smalltalk برای مدیریت رابطهای کاربری تعاملی بهکار رفت و بهتدریج به یک الگوی اصلی در توسعه نرمافزار تبدیل شد.
در دهه 1990، با گسترش برنامه های تحت وب، MVC بهوسیله فریمورکهایی مانند Java Struts و Ruby on Rails وارد دنیای وب شد. این الگو به دلیل تفکیک مسئولیتها و ساختار منظم، محبوبیت بالایی در توسعه برنامههای پیچیده یافت. در دهه 2000، فریمورکهایی مانند Django، ASP.NET MVC، و Spring MVC این معماری را بهعنوان هسته طراحی خود پذیرفتند.
با ظهور معماریهای مدرن مانند MVVM و ابزارهایی مانند React و Angular، مفهوم MVC تغییراتی را تجربه کرد اما همچنان بهعنوان یکی از بنیادیترین الگوهای معماری در طراحی نرمافزار باقی مانده است.
🔻 بررسی معماری MVC
معماری MVC یک الگوی طراحی برای توسعه برنامههای وب است (البته هدف اصلی از ایجاد MVC در متن بالا توضیح داده شد). معماری MVC از سه بخش اصلی تشکیل شده است.
◇ بخش اول مدل (Model):
این بخش مسئول مدیریت دادهها و منطق کسبوکار است. این بخش تمام عملیات مرتبط با ذخیرهسازی، بازیابی، و پردازش دادهها را انجام میدهد و با پایگاه داده تعامل دارد. Model مستقل از رابط کاربری است و تنها دادههای پردازششده را برای View و Controller آماده میکند. به عنوان مثال، در یک سیستم رزرو هتل، مدل وظیفه دارد ظرفیت خالی اتاقها را بررسی کند و اطمینان یابد که رزرو جدید برای هتل امکان پذیر است یا خیر. همچنین، اگر رزروی لغو شود، مدل باید ظرفیت را بهروزرسانی کند. در این سناریو، Model شامل قوانین کسبوکار (Business Logic) مانند "هر اتاق فقط یک رزرو میتواند داشته باشد" است و این قوانین را هنگام ذخیره یا تغییر دادهها اعمال میکند.
◇ بخش دوم نما (View):
بخش View مسئول نمایش دادهها به کاربر است. این بخش فقط بر نمایش اطلاعات تمرکز دارد و هیچ منطق پردازشی مرتبط با دادهها یا منطق کسبوکار را شامل نمیشود. View دادهها را از Model دریافت کرده و به کاربر نمایش میدهد.
برای مثال، در یک سیستم فروشگاهی آنلاین، بخش نما میتواند صفحهای باشد که لیست محصولات را به کاربر نشان میدهد. View فقط از اطلاعات موجود در Model (مانند نام، قیمت، و توضیحات محصول) استفاده میکند و آنها را در قالب HTML به نمایش درمیآورد. این بخش هیچگونه پردازش روی دادهها انجام نمیدهد، بلکه فقط آنها را به شکلی قابل فهم و مرتب به کاربر ارائه میکند.
◇ بخش سوم کنترلکننده (Controller):
بخش Controller وظیفه مدیریت تعاملات کاربر و ارتباط بین Model و View را بر عهده دارد. Controller درخواستهای کاربر را دریافت کرده و آنها را به Model ارسال میکند تا دادهها پردازش شوند. سپس، Controller دادههای پردازششده را به View ارسال کرده تا در رابط کاربری نمایش داده شوند.
🔻 بررسی معماری MVT
معماری Model View Template یا به اختصار MVT بهطور خاص در فریمورکهای Django طراحی شده است تا توسعهدهندگان را قادر سازد تا کدهای خود را به صورت منظم، خوانا و مقیاسپذیر سازماندهی کنند. این معماری مانند MVC از سه بخش اصلی تشکیل شده است که هرکدام وظایف خاصی را انجام میدهند. در این معماری بخش View همان بخش Controller در MVC و بخش Template تقریبا نقش View در MVC را دارد.
🔻 معماری MVT در هنگام استفاده از API
هنگام استفاده از API در جنگو، بخش Model همچنان مسئول مدیریت دادهها و منطق کسبوکار است. اما بخش View دیگر دادهها را به قالبهای HTML تبدیل نمیکند و بهجای آن، از Serializer برای ارسال دادهها به فرمتهای JSON یا XML استفاده میکند. بخش Template نیز دیگر وجود ندارد.
🔻 نتیجهگیری
معماری MVC (Model-View-Controller) یکی از الگوهای طراحی نرمافزاری معروف است که به تفکیک منطق کسبوکار، رابط کاربری و کنترل تعاملات کمک میکند.
🌐 منبع تکمیلی
🔖 #Python, #پایتون, #Django, #جنگو, #orm, #فریمورک
👤 ȺʍìɾⱮօհąʍʍąժ
💎 Channel: @DevelopixPython
👍14❤3