آموزش فلسک (Flask)

دسته بندی: آموزش پایتون (Python)

آموزش فلسک

آنچه در این صفحه می خوانید:

معرفی فلسک (Flask)

Flask یک میکرو فریمورک وب است که در پایتون نوشته شده است. به دلیل اینکه نیازی به ابزار یا کتابخانه خاصی ندارد، به عنوان میکرو ساختار طبقه بندی می شود. این فریمورک لایه انتزاع بانک اطلاعاتی، اعتبار سنجی فرم یا هر مؤلفه دیگری ندارد و در آن کتابخانه های شخص ثالث از قبل عملکردهای متفاوتی را ارائه می دهند. با این حال، Flask از پسوندهایی پشتیبانی می کند که می توانند ویژگی هایی را به برنامه را اضافه کنند، گویی که در خود Flask پیاده سازی شده اند. افزونه هایی برای نقشه برداری شی - رابطه ای، اعتبار سنجی فرم، رسیدگی به بارگذاری، انواع فناوری های تأیید هویت باز و چندین ابزار مرتبط با فریمورک وجود دارد. برنامه های افزودنی بسیار بیشتر از برنامه اصلی فلسک به روز می شوند. برنامه هایی که از فریمورک Flask استفاده می کنند شامل Pinterest ،LinkedIn و صفحه وب انجمن برای خود Flask است.

فلسک بر اساس ابزار Werkzeug ،WSGI و موتور الگو Jinja2 می باشد که هر دو پروژه Pocco هستند. یادگیری Flask برای افراد مبتدی آسان است، زیرا به کدنویسی کمی برای راه اندازی و اجرای برنامه لازم است. Armin Ronacher در سال 2010 این فریمورک را طراحی و منتشر کرد. Flask از فریمورک سیناترا روبی الهام گرفته شده که تحت مجوز BSD می باشد. Flask برای استفاده و گسترش آسان طراحی شده است. ایده پشت Flask این ایده است که پایه محکم برای پیچیدگی های مختلف برنامه های کاربردی باشد. از این رو شما آزاد هستید تا افزونه ی مورد نیازتان را ایجاد کنید. همچنین شما می توانید ماژول های خود را بسازید. Flask برای انواع پروژه ها عالی است و برای نمونه سازی اولیه بسیار مناسب است.

"میکرو" به چه معنی است؟

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

تاریخچه فلسک (Flask)

فلسک توسط آرمین روناچر از پوکو، گروه بین المللی از علاقه مندان به پایتون در سال 2004 ایجاد شده است. طبق گفته روناچر، این ایده در ابتدا شوخی آوریل بود که به اندازه کافی محبوب بود تا بتواند کاربرد جدی داشته باشد. هنگامی که روناشر و جورج براندل سیستم بولتن اعلان شده را در پایتون نوشتند، پروژه های پوکو Werkzeug و Jinja توسعه یافتند. علیرغم عدم انتشار عمده، فلسک در بین علاقه مندان به پایتون رواج پیدا کرده است. از اواسط سال 2016، این محبوب ترین فریمورک توسعه وب Python در GitHub بود و به محبوب ترین فریمورک وب در Python Developers Survey 2018 رای داده شد.

ویژگی های فلسک (Flask)

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

هنوز این سؤال باقی مانده است که اگر از "فلسک" به عنوان فریمورک برنامه وب خود استفاده کنیم، اگر Django ،Pyramid بسیار قدرتمند داشته باشیم و megaframework Turbogears را فراموش نکنیم؟ این ها فریمورک های برتر وب پایتون هستند، اما ویژگی های خارج از باکس فلسک که بسیار چشمگیر است، عبارتند از:

  •  اشکال زدایی سریع
  • پشتیبانی یکپارچه از تست واحد
  • قابلیت ساخت سرویس مبتنی بر RESTful
  • استفاده از Jinja2 برای templating
  • پشتیبانی از کوکی های امن
  • پشتیبانی از یونیکد
  • طراحی سبک و ماژولار
  • تبدیل آسان به فریمورک وب
  • انعطاف پذیری بالا
  • چندسکویی

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

  • فلسک دارای طراحی سبک و مدولار است، بنابراین می توان آن را با چند افزونه به فریمورک وب مورد نیاز خود تبدیل کرد.
  • ORM-agnostic: می توانید ORM مورد علاقه خود را به عنوان مثال SQLAlchemy وصل کنید.
  • پایه بنیادی API به زیبایی شکل و منسجم است.
  • اسناد فلسک جامع، پر از مثال ها و ساختارمند است. شما حتی می توانید برخی از برنامه های نمونه را امتحان کنید.
  • استقرار فلسک در تولید بسیار آسان است (فلسک 100٪ با WSGI 1.0 سازگار است)
  • قابلیت مدیریت درخواست HTTP
  • پیکربندی حتی انعطاف پذیرتر از جنگو است و برای هر نیاز تولید، راه حل های زیادی به شما می دهد.

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

مقایسه فلسک با جنگو

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

جنگو و فلسک در بین برنامه نویسان پایتون بسیار محبوب هستند. جنگو فریمورک وب پشته کامل برای پایتون است، در حالی که فلسک فریمورک وب سبک پایتون سبک و گسترده است. جنگو بر اساس رویکرد شامل باتری توسعه یافته است. این مزیت برنامه نویسان را قادر می سازد بدون استفاده از ابزارها و كتابخانه های شخص ثالث، وظایف مشترک توسعه وب را انجام دهند. جنگو فاقد برخی از ویژگی های قوی ارائه شده توسط پایتون است.

از این رو، برای توسعه دهندگان وب ضروری است که تفاوت های عمده بین Flask و Django را درک کنند.

نوع فریمورک وب

همانطور که قبلاً نیز اشاره شد، جنگو فریمورک وب پایتون فول استک است. همچنین، آن را بر اساس رویکرد batteries-included استفاده شده است. batteries موجود در جنگو انجام وظایف مشترک توسعه وب مانند تأیید اعتبار کاربر، مسیریابی URL و مهاجرت شمای پایگاه داده را برای توسعه دهندگان Django آسانتر می کند. همچنین، جنگو با تهیه موتور الگو داخلی، سیستم ORM و ابزار bootstrapping، توسعه برنامه وب سفارشی را تسریع می کند. از طرف دیگر، Flask فریمورک وب ساده، سبک و مینیمالیست است. فاقد برخی از ویژگی های داخلی ارائه شده توسط جنگو است. اما به توسعه دهندگان کمک می کند تا هسته اصلی برنامه وب را ساده و گسترده نگه دارند.

رابط کاربری مدیر تابعی

بر خلاف Flask ،Django باعث می شود تا کاربران بتوانند وظایف معمول مدیریت پروژه را با ارائه فریمورک آماده برای استفاده مدیریت، انجام دهند. علاوه بر این، ماژول مدیر عملکردی را بطور خودکار بر اساس مدل های پروژه تولید می کند. توسعه دهندگان حتی گزینه ای برای سفارشی کردن رابط مدیر برای دیدار با نیازهای خاص تجاری دارند. آنها حتی می توانند از رابط کاربری مدیر تابعی برای ساده کردن مدیریت محتوای وب سایت و مدیریت کاربر استفاده کنند.

موتور الگو

همانطور که قبلاً اشاره شد، فلسک بر اساس موتور الگو Jinja2 ساخته شده است. Jinja2 به عنوان موتور الگو کاملاً برجسته برای پایتون، از سیستم الگوی Django نیز الهام گرفته است. این برنامه نویسان را قادر می سازد با بهره گیری از محیط اجرای یکپارچه و نوشتن الگو ها با زبان رسا، توسعه برنامه های وب پویا را تسریع کنند. Django مجهز به موتور الگو داخلی است که به توسعه دهندگان امکان می دهد بدون نیاز به وقت و تلاش اضافی، لایه نمای کاربر برنامه وب را تعریف کنند. حتی به توسعه دهندگان این امکان را می دهد تا با نوشتن الگو ها به زبان الگو جنگو (DTL)، رابط کاربری سفارشی را تسریع کنند.

طرح پروژه

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

پشتیبانی پایگاه داده

جنگو به توسعه دهندگان اجازه می دهد تا از سیستم قوی ORM استفاده کنند. توسعه دهندگان می توانند از سیستم ORM برای کار با بانک های اطلاعاتی پرکاربرد مانند مای اس کیو ال، اوراکل، SQLite و پستگرس کیوال استفاده کنند. همچنین، سیستم ORM به توسعه دهندگان امکان می دهد عملیات بدون پایگاه داده را بدون نوشتن نمایش داده های SQL طولانی انجام دهند. برخلاف جنگو، فلسک سیستم ORM داخلی را ارائه نمی دهد. به توسعه دهندگان نیاز دارد تا با بانک های اطلاعاتی کار کنند و عملیات پایگاه داده را از طریق SQLAlchemy انجام دهند. توسعه دهندگان Python می توانند با استفاده از SQLAlchemy به عنوان ابزار SQL و سیستم ORM برای Python با پایگاه داده ها کار کنند. همچنین، آنها می توانند با نوشتن و اجرای نمایش داده شدگان SQL، نمایش داده های متداول پایگاه داده را انجام دهند.

موارد استفاده و کاربرد

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

در کل، هر دو Flask و Django از فریمورک های وب منبع باز برای Python استفاده می کنند. Django فریمورک وب کامل است، در حالی که Flask میکرو فریمورک وب است. ویژگی های ارائه شده توسط جنگو به توسعه دهندگان کمک می کند تا برنامه های بزرگ و پیچیده وب را بسازند. از طرف دیگر، فلسک با فراهم کردن قابلیت های مورد نیاز، پیشرفت برنامه های ساده وب را تسریع می کند. از این رو، توسعه دهندگان باید ضمن مقایسه Flask و Django، نیازهای پروژه های فردی را به خاطر بسپارند.

مثال های فلسک (Flask)

کد زیر برنامه وب ساده است که "!Hello World" را هنگام بازدید نشان می دهد:

from flask import Flask
app = Flask(__name__)

@app.route("/") def hello(): return "Hello World!"

if __name__ == "__main__": app.run()

آیا این نوشته را دوست داشتید؟
linkedin-building-restful-apis-with-flask

آموزش ساخت RESTful API با Flesk


API های خوب برای توسعه پروژه های وب و موبایل به ویژه با رویکرد مدرن و mobile-first ضروری هستند. این دوره دانش بنیادی مورد نیاز برای فعال کردن روابط مت...

1398/12/13 2078 بازدید زیرنویس دارد
packtpub-full-stack-web-development-with-flask

آموزش توسعه وب فول استک با Flask


این دوره تمام نکات مورد نیاز برای ساخت اپلیکیشن های وب پویا با استفاده از پایتون و فریمورک Flask را جهت توسعه وب Full-Stack پوشش می دهد....

1398/09/03 4500 بازدید
packtpub-hands-on-microservices-with-python

آموزش کامل میکروسرویس ها با پایتون


در این دوره با موضوعاتی از قبیل مدل سازی داده، ذخیره سازی داده، نوشتن درخواست های API آشنا می شوید و ایمن سازی، نظارت و مقیاس گذاری میکرو سرویس های خو...

1398/05/28 5568 بازدید
packtpub-application-development-with-python-and-flask-video

توسعه اپلیکیشن های وب با فلسک (Flask) و پایتون (Python)


آیا مایلید برنامه های کاربردی و قدرتمند تحت وب را در پایتون ایجاد کنید؟ اگر جواب شما مثبت است، پس از Flask استفاده کنید، چارچوبی که شما برای ایجاد برن...

1397/12/27 3144 بازدید
pluralsight-how-to-use-flask-python-rest-api-tools

آموزش استفاده از ابزارهای REST API پایتون و Flask 


در هسته توسعه هر REST API با Flask Microframework یک دانش کامل از نحوه استفاده از پایتون و Flask وجود دارد. در این دوره با مهارت های ایجاد REST API، ر...

1397/06/17 3009 بازدید زیرنویس دارد
teamtreehouse-build-a-social-network-with-flask-course

آموزش ایجاد شبکه اجتماعی با Flask 


وقت آن رسیده است تا چیزی بزرگ بسازید. در این دوره، ما قصد داریم با ابزارهایی که آموخته ایم، Flask، Peewee و Python یک شبکه اجتماعی کوچک بسازیم. همچنین...

1397/05/28 1931 بازدید
teamtreehouse-flask-rest-api-course

آموزش Flask REST API


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

1397/05/15 2087 بازدید
teamtreehouse-flask-basics-course

آموزش اصول فریمورک Flask 


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

1397/05/15 2070 بازدید
ttreehouse-build-a-social-network-with-flask

آموزش ساخت شبکه اجتماعی با Flask


در این دوره، ما قصد داریم کار با Flask و Peewee و Python و ساخت یک شبکه اجتماعی کوچک را یاد بگیریم. ما ثبت نام کاربر، احراز هویت کاربر، کلمه عبور پیچی...

1397/04/14 2936 بازدید
stoneriverelearning-essential-docker-for-python-flask-development

آموزش اصولی Docker برای توسعه Python Flask


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

1397/02/29 1989 بازدید
stoneriverelearning-professional-restful-api-design-using-python-flask

آموزش طراحی حرفه ای RESTful API با Python Flask


این دوره نحوه ساخت پلتفرم حرفه ای API با استفاده از Flask و بدون هیچ کتابخانه مکملی آموزش داده می شود تا دانشجویان بتوانند مبانی طراحی RESTful API را ...

1397/02/19 7503 بازدید
lynda-web-api-development-with-flask

آموزش ساخت Web API با Flask


در این آموزش تصویری با ساخت Web API با Flask آشنا می شوید. این دوره آموزشی محصول موسسه Lynda است. سرفصل های این دوره: راه اندازی Flask استفاده ...

1396/02/02 1961 بازدید
آموزش-اصول-flask-ایجاد-وبلاگ-ساز-استاتیک

آموزش اصول Flask - ایجاد وبلاگ ساز استاتیک


Flask یک میکرو فریمورک Python برای ساخت اپلیکیشن های تحت وب می باشد. در این آموزش تصویری با نحوه ساخت وبلاگ ساز استاتیک به کمک Flask آشنا می شوید. ...

1395/11/18 2812 بازدید
lynda-learning-flask

آموزش Flask


در این آموزش تصویری با Flask آشنا می شوید. این دوره آموزشی محصول موسسه Lynda است. سرفصل های این دوره: ایجاد یک homepage ساخت الگو مسیریابی با...

1395/11/05 3136 بازدید
packtpub-learning-flask

آموزش Flask


در این آموزش تصویری با Flask آشنا می شوید. در این دوره کار با رابط خط فرمان ، نحوه ذخیره سازی داده ها در GitHub و کار با قالب ها و فرم ها را می آموز...

1394/12/27 2441 بازدید
infiniteskills-building-web-apps-using-flask-and-neo4j

ساخت برنامه های کاربردی وب با استفاده از Flask و Neo4j


این دوره نحوه ساخت برنامه های کاربردی وب را با استفاده از Flask و Neo4j آموزش می دهد. این فیلم آموزشی برای مبتدیان ارائه شده که همچنین به معرفی اصول...

1394/12/27 2340 بازدید
packtpub-rapid-flask

آموزش سریع Flask


در این آموزش تصویری با Flask آشنا می شوید. این دوره برای افرادی که در برنامه نویسی پایتون ، HTML و CSS مهارت دارند مفید می باشد. همچنین در این دوره ...

1394/12/27 2744 بازدید