فریمورک ها چه کار می کنند ؟
فریمورک مجموعه ای از ماژول ها یا بسته ها است که به نوشتن برنامه های وب کمک می کند. وقتی (به عنوان مثال ) شغول کار در فریمورک های پایتون هستید، لازم نیست نگران جزئیات سطح پایین مانند پروتکل ها (protocols)، سوکت ها (sockets) یا مدیریت ترد (thread) باشید.
فریمورک ها به صورت خودکار راه حل هایی را که برای مسائل متداول به کار می روند اجرا می کنند که به کاربران اجازه می دهد به جای فرایندهای پایه و متداول روی منطق برنامه تمرکز کنند.
هم چنین با ایجاد ساختارهایی برای توسعه برنامه و ارائه الگوهای متداول برای برنامه های وب که سریع ، قابل اعتماد و به راحتی قابل نگهداری هستند، کار توسعه دهندگان وب را آسان کرده است.
بیایید با استفاده از فریمورک وب به چند عملیات درگیر در یک برنامه وب نگاهی بیندازیم:
بررسی ساختارهای ایجاد شده توسط فریمورک ها
مسیریابی Url – مسیریابی، مکانیسمی برای نگاشت URL به طور مستقیم به کدی است که صفحه وب را ایجاد می کند.
بررسی و اعتبار سنجی ساختار ورودی– فرض کنید ساختاری شامل چند ورودی دارید، این عملیات داده ها را اعتبار سنجی و سپس ذخیره می کند.
قالب بندی خروجی با موتور قالب (template engine) – یک موتور قالب به توسعه دهندگان اجازه می دهد انواع محتوای دلخواه مانند HTML ، XML ، JSON را تولید کنند.
اتصال به پایگاه داده (Database connection) – فریمورک های وب از از طریق نگاشت رابطه به شی (ORM)، امکان پیکربندی اتصالات پایگاه داده و نفوذ به داده های مداوم (persistent data) را فراهم می کنند.
امنیت وب – فریمورک ها امنیت وب را در برابر حملات CSRF (حملاتی که وب سایت آلوده باعث انجام عملی ناخواسته توسط کاربر می شود)، تزریق به پایگاه داده (SQL injection)، تزریق اسکریپت از طریق وبگاه (Cross site scripting) و سایر حملات مخرب متداول تامین می کند.
Session storage و بازیابی – داده های ذخیره شده در session storage با پایان page session پاک می شوند.
هم رویش منتشر کرده است:
آموزش وب اسکریپینگ با پایتون _____ بسته مقدماتی
مزایای فریمورک:
1.منبع باز (Open-source)
2.دارای مستندات خوب
3.کارآمد
4.ایمن
5.یکپارچه
چرا از فریمورک استفاده کنیم؟
فریمورک ها استفاده مجدد از کدها را برای عملیات های رایج HTTP آسان تر می کنند. آن ها پروژه ها را به گونه ای ساختار می دهند تا سایر توسعه دهندگان با دانش فریمورک بتوانند به راحتی آن ها را نگهداری و برنامه بسازند.
کتابخانه در مقابل فریمورک
کتابخانه | فریمورک |
پیچیدگی کم | پیچیدگی زیاد |
با فراخواندن از کتابخانه، شما در راس کنترل هستتید | فراخوانی توسط فریمورک صورت می گیرد |
فقط عملیلات مشخصی را انجام می دهند | تنها شامل موارد پایه است و بقیه توسط کاربر ساخته می شوند |
مهمترین مزیت استفاده از فریمورک به جای کتابخانه، انعطاف پذیری است چراکه قابل توسعه هستند و ابزارهای لازم برای گسترش امکاناتش را در اختیار ما قرار می دهد.
وقتی از کتابخانه استفاده می کنید، برای انجام عملیاتی خاص، باید تابع آن را فرابگیرید اما با استفاده از فریمورک به دلیل کنترل ساختار یافته داده ها، فقط باید توسط تابع های موجود در فریمورک عملیات خود را پیش ببرید.
5 فریمورک برتر در پایتون
این تقسیم بندی بر اساس ویژگی های کلیدی و امکاناتی که در اختیار کاربر قرار می دهند صورت گرفته است.
1-جنگو
2-web2py
3-فلسک
4-باتل
5-cherrypy
انواع فریم ورک ها:
• میکرو فریمورک (Micro-framework)
• فریمورک فول استک (Full-stack framework)
تفاوت بین میکرو فریمورک و فریمورک فول استک :
میکرو فریمورک | فریمورک فول استک |
ساده و کاربری آسان | پیچیدگی و عملیات سنگین |
مسیریابی url اغلب در حالتRESTful انجام می شود | باشدRESTfulنباید در حالت |
مناسب برنامه های کوچک است | برای تولید انواع برنامه ها کاربرد دارد |
از WSGI استفاده کرده و از طریق آناتومی درخواست / پاسخ HTTP کار می کند. | دارای کتابخانه ها، موتورهای قالب، مدیریت بانک اطلاعاتی و… |
جنگو
جنگو یک فریمورک منبع باز، فول استک و رایگان پایتون است که موارد ضروری را بصورت پیش فرض دارد.
این فریمورک اصل DRY را دنبال می کند، که می گوید خودتان را تکرار نکنید.
جنگو از نگارنده های نگاشت رابطه به شی خود برای نگاشت اشیاء در جداول پایگاه داده استفاده می کند.
نگارنده رابطه به شی (object relational mapper) کتابخانه ای از کد ها است که به شما کمک می کند داده ها را با استفاده از الگوی شی گرا دستکاری کنید.
بانک های اطلاعاتی اصلی که جنگو روی آن کار می کند PostgreSQL ، MySQL ، SQLite ، Oracle و MariaDB هستند.
همچنین می تواند با استفاده از درایورهای شخص ثالث با بانک های داده دیگر کار کند.
دوره های آموزشی مرتبط با جنگو
- آموزش پروژه محور جنگو ــ ساخت وبلاگ از صفر تا انتشار آنلاین ۲۴۳,۰۰۰ تومان
- آموزش Django REST Framework پروژه محور ــ ساخت API با جنگو ۱۵۹,۰۰۰ تومان
- آموزش جنگو از صفر --- طراحی سایت با پایتون و Django ۱۰۹,۰۰۰ تومان
ابزارهای فریمورک وب جنگو :
1-توانایی اعتبار سنجی (Authentication)
2-دارای مسیریابیURL، موتور قالب، نگاشت رابط به شی و مهاجرت و ارتقای اسکیمای پایگاه داده (منظور ساختار جدولها یا Database Schema migration است).
3-پیروی از معماری MVC-MVT
معماری MVC-MVT
MVT با MVC متفاوت است، در MVT با اینکه جنگو از قسمت کنترل کننده که شامل کد هایی است که وظیفه کنترل برهم کنش بین مدل و view را بر عهده دارد نگهداری می کند و قالب آن ترکیب فایل HTML با قالب زبان جنگو است اما ارائه مدل، view و الگوی نهایی بر عهده توسعه دهنده است، سپس کاربر آن را در url نگاشت می کند و بقیه کارها توسط جنگو انجام می شود تا آن را به کاربر برساند.
Web2PyWeb2Py
منبع باز، مقیاس پذیر و فول استک است.
این نرم افزار از پایتون 3 پشتیبانی نمی کند و دارای IDE مبتنی بر وب مخصوص خود است که شامل ویرایشگر کد و دیباگر (debugger) جداگانه می باشد و مدیریت وب برنامه از هر زمان و مکانی صرفاً از طریق یک کلیک می باشد.
برنامه نویسی و آموزش فریمورک ها
https://www.edureka.co/python-scripting
ویژگی های فریمورک Web2Py :
1-بدون نیاز به پیش نیاز برای نصب و تنظیمات
2-قابلیت اجرا بر روی سیستم عامل های مختلف مانند- ویندوز ، مک ، لینوکس و غیره
3-توانایی خواندن چندین پروتکل
4-تامین امنیت داده ها را در برابر آسیب پذیری هایی مانند تزریق اسکریپت از طریق وبگاه، تزریق به پایگاه داده و سایر حملات مخرب
5- دارای مکانیزم ردیابی خطا از طریق خطای ورود به سیستم و سیستم تیکتینگ (ticketing system)
6-دارای کنترل دسترسی نقش محور (role based access control)
7-دارای سازگاری برگشتی (backward compatibility) که به کاربران اجازه می دهد بدون از دست دادن ارتباط با نسخه های قبلی برنامه خود را ارتقا دهند.
فلسک (در ایران فلاسک هم تلفظ شده)
میکرو فریمورکی سبک اما در عین حال قابل توسعه است و طراحی ماژولار آن باعث می شود که به راحتی با نیازهای توسعه دهنده سازگار شود.
ویژگی پکیج های آماده فلسک:
1- دارای سرور توسعه داخلی (Built-in)
2-دیباگر (debugger) سریع
3-پشتیبانی یکپارچه از یونیت تستیگ (unit testing)
4-امکان توزیع درخواست های RESTful یا RESTful request dispatching
5-دارای قالب Jinja2
6-پشتیبانی ایمن از کوکی ها
7-مبتنی بر یونیکد (Unicode-based)
8-سازگار با WSGI (WSGI compliance)
8-سازگار با انواع نگاشت رابط به شی
9-قابلیت رسیدگی به درخواست های HTTP
باتل
یک میکرو فریمورک است و در اصل ابزاری برای ساخت API ها می باشد. این فریمورک تمام کدها را در یک سورس single file پیاده سازی می کند و به کتابخانه استاندارد پایتون وابستگی ندارد.
ویژگی های پیش فرض برنامه:
1-قابلیت مسیریابی
2-دارای قالب بندی
3-دسترسی به فرم داده ها، آپلود فایل ها، کوکی ها، هدرها و غیره.
4-دارای لایه انتزاعی (Abstraction layer) بر روی WSGI استاندارد
5-دارای سرور توسعه داخلی که از سایر سرورهای HTTP با قابلیت WSGI پشتیبانی می کند.
باتل برای ساخت برنامه های شخصی ساده، نمونه سازی و یادگیری سازماندهی فریمورک های وب مناسب است.
CherryPy
CherryPy یک فریمورک منبع باز و مینیمالیست برای وب و مبتنی بر پارادایم برنامهنویسی شئگرا است.
هم رویش منتشر کرده است:
این فریمورک، امکان استفاده از هر نوع فناوری برای ایجاد قالب ها و دسترسی به داده ها را می دهد و قابلیت رسیدگی به session ها، کوکی ها، استاتیک ها، آپلود فایل ها و موارد دیگر را که یک فریمورک وب به طور معمول می تواند اداره کند، دارد.
ویژگی های اصلی CherryPy :
1-سازگاری HTTP WSGI با وبسرورهای مبتنی بر استخر چندنخی یا thread pooled web server
2- سادگی در اجرای چندین سرور HTTP به طور همزمان
3-دارای سیستم پلاگین انعطاف پذیر
4- قابلیت Caching
5-قابلیت Encoding
6-قابلیت اعتبار سنجی
7-پشتیبانی داخلی از پروفایل سازی (profiling)، coverage و testing
8-امکان اجرا بر روی سیستم عامل های مختلف
برای انتخاب فریمورک باید توابع و ویژگی آن ها را در ذهن داشته باشید زیرا میزان سازگاری فریمورک با نیازتان است که عملکرد پروژه شما را تعیین می کند. در این مقاله در مورد ویژگی های کلیدی 5 فریمورک برتر در پایتون بحث شد که این بررسی به شما در تشخیص فریمورک مناسب در هنگام کار بر روی یک پروژه توسعه وب، کمک می کند.
همچنین در هم رویش بخوانید
بهترین فریمورک های برنامه نویسی برای کار تیمی و شرکتها
کلیدواژگان
مزایای فریمورک | مزایا فریمورک | مزایا فریم ورک | فریمورک وب پایتون | فریمورک وب برای پایتون | بهترین فریمورک وب پایتون | بهترین چارچوب توسعه پایتون | تفاوت فریمورک و کتابخانه | فرق فریمورک با کتابخانه | فریمورک یا کتابخانه | مقایسه فریمورک و کتابخانه
منبع :
Python Frameworks: What Are The Top 5 Frameworks In Python?