پایتون و بک اند - 1: چه انتخاب هایی داریم؟

python and backend....پایتون یکی از بهترین و حرفه ای ترین زبان های برنامه نویسی backend بوده و هست.زبان پایتون یکی از نزدیک ترین زبان ها به زبان انسان هست، به همین دلیل و دلایل دیگر، یکی از ساده ترین زبان ها و انتخاب اصلی برنامه نویسان بک اند و فول استک هست.ولی برای شروع، باید دید چه فریم ورک های خوبی توی این زبان هست؟ از کجا میتوان آموزش این فریمورک ها را پیدا کرد و...در این مقاله میخواهیم فریمورک های مختلف را با هم بررسی کنیم و ببینیم برای کار های مختلف، کدام فریمورک بهتر است؟1. DJangoجنگو بهترین و شاید سریع ترین فریمورک بک اند در پایتون هست، جنگو یک فریم ورک Opensource است که چارچوب وبی برای افرادی است که دقت و سرعت را همزمان می‌خواهند یا به قول خودشانThe web framework for perfectionists with deadlinesجنگو منحنی یادگیری پیچیده ای دارد، برای یادگیری جنگو باید سخت تلاش کرد و به صورت مستمر ویدیو دید، داکیومنت خوند و تمرین کرد تا بلکه چیزی از این فریمورک بزرگ نصیبمان شود.جنگو بسیار مستقل است و برای خود Models, views, template_engine و... دارد و برعکس بقیه فریمورک ها از Model ها و template_engine های آماده مانند jinja استفاده نمیکند.برای نصب جنگو(که البته احتمالا همه تون بلدین)pip install djangoکه یک چند دقیقه ای طول میکشد.معماری جنگو چیست؟جنگو یک معماری مخصوص دارد که فقط برای برنامه های خیلی بزرگ کاربرد دارد و برای کوچک تر از آن جواب نمیدهد.معماری جنگو، یک معماری Model View Templates(MVT) که در واقع همان MVC است، اما اختصاصی شده خود جنگوهر دو معماری یکی هستند، فقط جنگو از اسم های متفاوت استفاده میکند.معماری MVC یکی از بهترین معماری های طراحی وب است که از سه بخش کاملا مجزا تشکیل شده است:1. models: مدل ها در جنگو کار database ها را میکنند، هر model یک جدول SQLite است، جنگو هر مدل را مجزا کنترل میکند2. view: view ها بخش مهم سایت هستند، آنها درخواست ها را پردازش میکنند، برای مثال اگر بخواهید صفحه اصلی برای کسی که با windows وارد میشود یک چیز و برای دیگران چیز دیگری نمایش داده شود، این کار را در view ها انجام میدهید، هنگامی که درخواست آمد، os درخواست را بررسی میکنید و با توجه به آن صفحه مشخصی را لود میکنید.3. templates: این بخش نیز بخش front سایت است و فایل های html, css, js در این بخش قرار میگیرند.در این حالت برنامه نویس داده، برنامه نویس بک اند و برنامه نویس فرانت اند میتوانند به راحتی مجزا از هم کار کنند و معطل یکدیگر نشوندمشکلاتی که این فریمورک دارد1. برای برنامه های کوچک و حتی متوسط نیاز نیست و نیاز به کد های بسیار زیاد اضافی دارد که بسیاری از وقت را میگیرند2. نسبت به زبان های دیگر کند است.2. Flaskفلاسک هم یکی از معروف ترین فریمورک های بک اند در پایتون است، اما یک فرق اساسی با django دارد و آن هم حجم برنامه (هم خود فریمورک هم برنامه شما) با حجم برنامه جنگو است.کدهای خود فریمورک فلاسک حتی به اندازه کد های model های فریمورک جنگو نیستند و کد های یک سایت Flask به اندازه کد های model های django هم نیستند.فرق دیگر این فریمورک این است که تمامی کد ها را باید خودتان بنویسید و برای برنامه های بزرگ، میزان کد نوشتن از برنامه های کوچک بیشتر است.اما چرا این طوری است؟django از کد های آماده اتسفاده میکند که شما باید یک بار آنها را بنویسید و درواقع config کنید تا در تمام برنامه تان استفاده کنید، ممکن است در یک برنامه کوچک نیاز به این همه ابزار نداشته باشید و به همین دلیل کد های بیهوده زیادی باید بنویسید.اما در فلاسک نیازی نیست این کار را انجام دهید و به محض نیاز کد ها را مینویسید.فلاسک معماری خاصی ندارد، این میتواند دست شما را باز کند یا برعکس، کار شما را سخت تر کند.در ضمن، فلاسک یک میکرو فریمورک است و یک فریمورک کامل نیست که البته این موضوع لطمه ای به آن وارد نمیکند.3. FastAPIفست ای پی آی یکی از فریمورک های مخصوص API معروف است و همانطور که از نامش معلوم است، سریع عمل میکند.قابلیت های فست نسبت به بقیه کمتر است، اما برای API از بقیه آنها کامل تر است.همچنین قابلیت تست زنی حرفه ای دارد و میتوان به راحتی برنامه را با آن debug کرد.❤️?