9 بهترین چارچوب های پایتون برای ساختن برنامه های کاربردی کوچک و کوچک

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


پایتون مورد علاقه علاقمندان ، دانشمندان و معماران قرار می گیرد.

برای شروع کار ساده ای لعنتی ، قابلیت انتزاعهای مرتبه بالاتر و قابلیت برنامه نویسی metaprograming برای ساختن سیستم های بزرگ و پیچیده را دارد و کتابخانه های زیادی برای انجام کارهای تقریباً زیاد دارد. مطمئناً ، محدودیت هایی در مورد همزمانی و تایپ کردن زیاد وجود دارد ، اما می توانید در اطراف آنها کار کنید.

در این مقاله ، وقتی به ساخت برنامه های وب بزرگ و کوچک می پردازیم ، به برخی از بهترین چارچوب های پایتون می پردازیم.

جنگو

جنگو چارچوب در برابر زمان آزمایش چارچوب وب برای انجمن پایتون مقاومت کرده است. اگر در خواب خود به یک توسعه دهنده پایتون حمله کردید و آنها را مجبور به ساختن یک برنامه وب در gunpoint کردید ، آنها به طور خودکار به Django دسترسی پیدا خواهید کرد تا راهی که Rubyist برای ریل به آن برسد..

و دلیل خوبی برای آن وجود دارد همانطور که برچسب عنوان می گوید ، جنگو “چارچوب وب برای کمالگرایان با مهلت مهلت است”. این چارچوبی “باتری شامل” (همانند پایتون زبان باتری است) نامیده می شود ، که تمام عملکردهای رایج را در خارج از جعبه ارائه می دهد.

با وجود این ویژگی های پخته شده ، جنگو به طور انبوه زمان توسعه را کاهش می دهد:

  • ORM مفید و دلپذیر ، با مهاجرت ایجاد شده و بطور خودکار توسط این چارچوب اعمال می شود.
  • داربست برای تولید خودکار پنل مدیریت بر اساس مدل های شما.
  • پشتیبانی از کوکی ها ، جلسات ، میان افزار ، قالب ها و غیره.
  • از ویژگی های امنیتی مانند جلوگیری از XSS ، جلوگیری از CRSF و غیره بطور خودکار استفاده می شود.
  • با کلیه بانکهای اطلاعاتی موجود در آنجا کار می کند (پیدا کردن آداپتورهای موجود در آنجا که پشتیبانی رسمی وجود ندارد آسان است)
  • پشتیبانی طبقه اول از داده های جغرافیایی و نمایش داده شد مکانی ژئوژانگو

و خیلی ، خیلی بیشتر کافی است که بگوییم جنگو یک چارچوب وب تمام عیار و دوستانه است.

آیا جنگو برای شماست?

کاملا بله.

جنگو برای همه موارد استفاده اعم از نمونه سازی سریع یا برنامه ریزی یک برنامه سازمانی بسیار عالی است. تنها حاشیه ای خشن که با آن روبرو می شوید ساختار چارچوب است. از آنجا که Django به سمت عقب خم می شود و توسعه را برای شما سریع و آسان می کند ، ساختار آن (مفهومی به نام “قرارداد بیش از پیکربندی”) را به توسعه دهنده تحمیل می کند ، که شاید با آن موافق نباشید. به عنوان مثال ، اگر می خواهید ORango DjM را با چیز دیگری جایگزین کنید (مثلاً SQL Alchemy) ، برای سورپرایزها آماده شوید.

آیا علاقه مندید که با Django و Python توسعه دهنده پشته شوید؟ – اینو ببین دوره آنلاین فوق العاده.

فلاسک

در حالی که جنگو تقریباً تمام ذهنیت های توسعه وب پایتون را به خود اختصاص می دهد, فلاسک یک مدعی قوی است.

بر خلاف Django ، Flask یک “میکرو چارچوب” است ، به این معنی که تمرکز خود را بر روی گرفتن چند چیز کوچک ، حداقل برهنه درست انجام می دهد ، و بقیه را به شما واگذار می کند. این “بقیه به شما بستگی دارد” بسته به اهداف شما می تواند باعث ناامیدی یا لذت شود. برای کسانی که می دانند چه کاری انجام می دهند و می خواهند با انتخاب مؤلفه های مورد نظر خود ، با محبت از برنامه های وب خود استفاده کنند ، Flask خدادادی است.

فلاسک ویژگی های زیر را ارائه می دهد:

  • مسیریابی ، قالب بندی ، مدیریت جلسه و سایر ویژگی های مفید.
  • پشتیبانی کامل برای تست واحد
  • معماری حداقلی و قابل اتصال
  • پشتیبانی از کلاس اول REST
  • پشتیبانی از Blueprints ، معماری بی نظیر فلاسک برای برنامه های وب کوچک است
  • بسته های خود را برای ORM ، مهاجرت و غیره انتخاب کنید.
  • ساختار برنامه قابل انعطاف – پرونده های خود را در جایی قرار دهید که از نظر شما حساس تر باشد
  • ارائه پرونده استاتیک
  • سازگار با WGSI

آیا فلاسک برای شماست?

همانطور که قبلاً گفته شد ، Flask یک فریم ورک وب حداقل است ، با همه چیز در اجزای جداگانه ای که می توانید از آن جدا شوید ، شکسته شده است. اگر در ساخت نمونه اولیه عجله دارید ، زمان زیادی را برای تصمیم گیری های بی اهمیت در پایگاه داده ، ساختار پوشه ، مسیریابی و غیره صرف می کنید که می تواند اثربخشی داشته باشد. هنگامی که به یک پروژه پایدار و جدی از مقیاس متوسط ​​و بزرگ ، به ویژه API های REST هستید ، فلاسک بهتر کار می کند.

بطری

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

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

  • استقرار تک پرونده بله ، کل برنامه شما در یک پرونده “.py” تنها زندگی می کند.
  • وابستگی خارجی ندارد. اگر نسخه Python مناسب را نصب کردید ، خوب است که بروید.
  • موتور موردعلاقه خود را تأمین می کند ، که می تواند با Jinja2 ، Mako یا Cheetah تعویض شود.
  • پشتیبانی از فرم ها ، هدرها ، کوکی ها و بارگذاری پرونده ها.
  • وب سرور داخلی که به راحتی قابل تعویض است.

برای شما بطری است?

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

همچنین ، اگر فکر می کنید بطری و فلاسک تقریباً یکسان هستند ، درست است. پیشنهادات ادغام این دو تاریخ به سال 2012 برمی گردد ، و حتی آرمین ، خالق فلاسک ، با آن موافق است. با این حال ، مارسل ، خالق بطری ، به دلیل رویکرد تک پرونده ای تمایز ایدئولوژیکی شدیدی را حفظ می کند و اصرار دارد که این دو از هم جدا بمانند.

Zope

Zope توضیح پیچیده است ، اما من تلاش خواهم کرد. بله ، این یک چارچوب وب است که می تواند برای ساختن برنامه های بزرگ یا کوچک استفاده شود ، اما این همه چیز نیست. Zope بیشتر بسترهای نرم افزاری است كه شامل ابزارهایی است (چهارچوبهای وب شامل) كه تحت فلسفه Zope ایجاد شده و توسط شركت Zope نگهداری می شود..

Zope چندین مؤلفه جالب و ویژگی های مناسب برای توسعه برنامه های سازمانی دارد:

  • یک مؤلفه معماری ثبت و کشف برای پیکربندی یک برنامه بزرگ.
  • ZODB – (تنها) بانک اطلاعاتی شیء برای پایتون برای ذخیره سازی اشیاء بومی.
  • چارچوب و استانداردهای کامل برای سیستم های مدیریت محتوا
  • مجموعه ای از چارچوب های برنامه وب – متعارف هنوز هم Zope نامیده می شود ، اگرچه چندین چارچوب جدید (مانند Grok) در بالای آن ساخته شده است.
  • استانداردهای قوی برای توسعه ، انتشار و نگهداری نرم افزار.

آیا Zope برای شما است?

اگر دنبال یک محیط کاملاً ساختار یافته برای ساختن برنامه های واقعاً بزرگ هستید ، Zope خوب است. این گفته ، شما به سهم نسبتاً خوبی از مسائل خود نیز رسیدگی خواهید کرد. در حالی که Zope به تکامل خود ادامه می دهد ، جامعه واقعاً کوچک است ، به حدی که حتی بسیاری از توسعه دهندگان Python حتی در مورد آن چیزی نشنیده اند. پیدا کردن آموزش ها و مستندات گسترده کار سختی است ، بنابراین آماده شوید تا حفر های زیادی در اطراف انجام دهید (اگرچه جامعه واقعاً مفید است!). همچنین ، توسعه دهندگان Python که با آنها روبرو می شوید ممکن است مایل به یادگیری Zope نباشند و مجموعه مهارتهای خود را “رقیق” کنند.

TurboGears

TurboGears یک چارچوب بسیار انعطاف پذیر است که دارای یک معماری کاملاً کاملاً سازگار است. این چارچوبی است که مطابق نیاز شما مقیاس می دهد ، و می توانید از آن برای ساختن یک برنامه تک پرونده یا یک Behemoth چند اجاره ای استفاده کنید.

TurboGears دارای برخی از ویژگی های ظریف است که برخی از آنها یا در چارچوب های محبوب (مانند جنگو) موجود نیستند یا ساخت آنها سخت است:

  • پشتیبانی کلاس اول از چندین پایگاه داده
  • معاملات چند بانک اطلاعاتی
  • بسیار مدولار – با یک پرونده واحد شروع کنید و به اندازه نیاز خود اندازه بگیرید
  • یک ORM قدرتمند (SQLAlchemy ، که بالغ تر و تواناتر از ORM Django است)
  • معماری قابل نصب بر اساس مشخصات WSGI
  • پشتیبانی داخلی برای خرد کردن بانک اطلاعاتی
  • رابط کاربری محور با سلسله مراتب شی گرا عمیق و سفت و سخت مخالف است.

آیا TurboGears برای شما مناسب است?

اگر می خواهید با خوشحالی پیشرفت کنید و یک چارچوب آزمایش شده ، بالغ و قوی را به دور از سر و صدای رسانه های “عالی ، نسل بعدی” و همه این موارد بخواهید ، TurboGears مناسب بسیار خوبی است. بسیار مورد احترام در جامعه است و مستندات کامل و گسترده ای دارد. مطمئناً ، TurboGears اظهار نظر نمی کند ، به این معنی که تنظیم اولیه و زمان پیکربندی می تواند بیشتر باشد ، اما این چارچوب ایده آل برای توسعه برنامه های سازمانی است.

Web2py

Web2py به عنوان یک پروژه سرگرمی آغاز به کار کرد و در سال 2007 منتشر شد. هدف از آن این است که توسعه وب آسان و در دسترس همه باشد.

در نتیجه ، Web2py رویکرد وابستگی صفر را به افراط و تفریط سوق می دهد – نیازی به نصب و نصب ندارد و شامل یک ویرایشگر کامل مبتنی بر وب برای توسعه ، مدیریت پایگاه داده و همچنین استقرار است..

تقریباً می توانید از آن به عنوان اندروید استودیو فکر کنید ، که بیشتر از یک چارچوب یک محیط کامل است. برخی از ویژگی های خوب Web2py:

  • تقریباً هیچ منحنی یادگیری وجود ندارد.
  • هسته حداقل (فقط 12 شی) که حتی می توان آنها را به خاطر سپرد!
  • تمیز-پایتون
  • محافظت در برابر XSS ، CSRF و سایر حملات
  • یک API دلپذیر و مداوم

آیا Web2py برای شما مناسب است?

Web2py یک چارچوب پایدار و سرگرم کننده است ، اما توصیه می شود آن را در برابر گزینه های دیگر مانند Django ، Flask ، و غیره توصیه کنید به سختی کار وجود دارد ، و داستان تست واحد عالی نیست. به گفته این ، شما ممکن است از API کد و تجربیات کلی که چارچوب ارائه می دهد ، لذت ببرید ، به خصوص اگر در حال ساخت API های REST هستید.

CherryPy

CherryPy یکی دیگر از میکروفون های دیگر که هدف از ارائه عملکردهای اساسی چارچوب را دارد و به سرعت از راه خارج می شود.

در حالی که این قابل مقایسه با سایر ریزگردها مانند فلاسک است ، CherryPy دارای برخی از تفاوت ها:

  • این شامل یک سرور چند رشته ای داخلی است (چیزی که در لیست دلخواه فلاسک باقی می ماند)
  • سرور وب (تک) می تواند میزبان چندین برنامه باشد!
  • برنامه خود را به عنوان یک برنامه WSGI (برای رابط با سایر برنامه های WSGI) یا یک سرور HTTP ساده (که عملکرد بهتری دارد) ارائه دهید.
  • پشتیبانی کلاس اول از پروفایل و تست واحد
  • روی PyPy (برای کارواش عملکرد واقعی) ، Jython و حتی Android اجرا می شود

CherryPy همه اینها را انجام می دهد ، و سپس معمول شما از یک چارچوب وب انتظار دارید.

آیا CherryPy برای شما مناسب است?

اگر بیشتر در حال ایجاد خدمات RESTful هستید ، CherryPy یک مدعی بسیار جدی تر از Flask است. این یک چارچوب یک دهه است که به خوبی بالغ شده است و برای برنامه های کوچک و بزرگ به طور یکسان مناسب است.

سانیک

ظهور نود و مدل برنامه نویسی ناهمزمان آن بسیاری از جوامع را به خود جلب کرد ، شامل پایتون. در پاسخ ، تندی از چارچوبهای وب async در رادار ظاهر شده است, سانیک یکی از آنها.

Sanic به شدت از Flask الهام گرفته است ، به حدی که از دکوراتورهای مسیر ، Blueprints و سایر اصول اولیه استفاده کرده است. و شرمنده این نیستند که بپذیرند. آنچه سانیک را به عنوان میزبان جدول آورده است ، اگر طرفدار Flask هستید ، برای برآورده کردن سطح عملکرد یک برنامه نود ، غیرقابل انسداد I / O است. به عبارت دیگر ، سانیک Flask است که از async / منتظر پشتیبانی است!

در مقایسه با CherryPy ، Sanic یک مزیت عملکرد باورنکردنی دارد (فقط به این فکر کنید که چگونه می تواند در برابر فلاسک کرایه کند!). نتایج زیر را که توسط آنها آزمایش شده است بررسی کنید DataWeave:

همانطور که مشاهده می کنید ، هنگامی که تعداد همزمانی بیش از 50 در ثانیه شروع می شود ، CherryPy عملاً خفه می شود و میزان نارسایی بالایی را بالا می برد..

آیا برای شما سانیک است?

در حالی که ویژگی های عملکرد Sanic همه چیز را از آب بیرون می اندازد ، ممکن است بهترین انتخاب برای پروژه بعدی شما نباشد. دلیل اصلی کمبود کتابخانه های ناهمزمان است. بخش عمده ای از ابزارها و کتابخانه های موجود پایتون برای نسخه CPython تک رشته ای نوشته شده است ، بدون پیش فرض برای همزمانی بالا یا عملیات ناهمزمان. به عنوان مثال ، اگر ORM مورد علاقه شما از عملیات ناهمزمان پشتیبانی نمی کند ، کل استفاده از Sanic از بین می رود.

به همین دلایل بلوغ و در دسترس بودن ، ما چارچوب های دیگر را در Python بررسی نمی کنیم.

ماسونیت

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

به عبارت ساده تر ، ماسونیت نسخه پایتون Laravel است (یک فریم ورک معروف PHP ، در صورتی که نمی دانید). چرا این مهم است؟ مهم است زیرا Laravel بر اساس اصول Ruby on Rails ساخته شده است ، و این دو چهارچوب با هم به شیاطین غیر روبی اجازه می دهند “راه راه” را برای انجام کارها تجربه کنند..

توسعه دهندگان Laravel (و تا حدی ریل) در خانه احساس راحتی می کنند و به معنای واقعی کلمه و بدون هیچ وقت ساعتی فعال و فعال می شوند. هنگامی که من ماسونیت را امتحان کردم (و من یک یا دو موضوع را ارسال کردم ، از جمله یک اشکال!) ، من قادر به ساختن API های REST با تفکر دقیقاً صفر شدم زیرا حافظه ماهیچه ای Laravel من همه چیز را انجام می داد.

ماسونیت به عنوان یک چارچوب کامل و باطری که شامل باتری ها است ، چندین چیز جالب را در جدول به ارمغان می آورد:

  • ضبط فعال ORM سبک
  • مهاجرت بانک اطلاعاتی (که برخلاف جنگو ، باید توسط توسعه دهنده ایجاد شود)
  • یک کانتینر قدرتمند IoC برای تزریق وابستگی
  • CLI شخصی (به عنوان “کاردستی”) برای داربست و انجام کارها
  • پشتیبانی کلاس اول برای تست واحد

بزرگترین “رقیب” برای ماسونیتو جنگو است ، زیرا جامعه تمام تلاش خود را می کند تا چارچوب را به آسانی ، لذت بخش و چیز بزرگ بعدی به بازار عرضه کند. اینکه فراتر از جنگو باشد ، چیزی است که زمان خواهد گفت (اگر از من بپرسید ، عکس مناسبی دارد) ، اما برای بحث در مورد مقایسه این دو ، ببینید اینجا و اینجا.

آیا ماسونیت برای شماست?

ماسونیت در مقایسه با جنگو هنوز یک نوزاد است ، بنابراین به هیچ عنوان نمی توان توصیه کرد از طریق جنگو استفاده شود. به گفته این ، اگر به روش ریلز (یا راه Laravel) انجام کارها بپردازید ، از آنچه ماسونیت ارائه کرده است قدردانی می کنید. این ایده آل برای ساخت سریع نمونه های اولیه است که نیاز به همه چیز از پیش تنظیم شده و تعویض آسان دارند.

نتیجه

کمبود چارچوبهای وب پایتون در آنجا ، بزرگ و کوچک وجود ندارد. در حالی که شما می توانید تقریباً چیزهای زیادی را برای یک پروژه کوچک انتخاب کنید ، یک برنامه سازمانی خواسته هایی دارد که بسیاری از این چارچوبها قادر به تحقق آن نیستند. اگر از من بخواهید ، برای توسعه سرمایه گذاری ، جنگو (تا حدی) ، Zope و TurboGears چیزی هستند که به ذهن شما خطور می کند. و حتی در بین اینها ، من به TurboGears تمایل دارم.

به گفته این ، هر معمار که نمک خود را ارزش دارد ، می تواند یک میکرو ساختار را انتخاب کرده و معماری آنها را از بین ببرد. و این تقریباً چیزی است که در عمل اتفاق می افتد ، و این موفقیت موفقیت فلاسک و ایده های مشابه را توضیح می دهد.

اگر تازه کار هستید ، پس این دوره آنلاین برای یادگیری پایتون مفید خواهد بود.

برچسب ها:

  • پایتون

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map