آموزش کار با flask برای مبتدیان

آیا تا به حال دوست داشتید وبسایت شخصی خودتان را داشته باشید، اما از پیچیدگیهای دنیای وب هراس داشتید؟ اگر کمی پایتون بلد هستید، دیگر نیازی نیست نگران باشید. «فلسک» (Flask) دقیقاً همان ابزاری است که به شما اجازه میدهد بدون درگیر شدن در جزئیاتِ دستوپایگیر، خیلی سریع اولین پروژه تحت وب خود را بالا بیاورید.
فلسک به دلیل سبک بودن و انعطافپذیری بالایی که دارد، بهترین نقطه شروع برای هر کسی است که میخواهد طعم توسعه وب با پایتون را بچشد. در این راهنما، قصد داریم بدون حاشیه و با زبانی ساده، اولین قدمها را با هم برداریم تا در پایان این مقاله، شما اولین اپلیکیشن وب خود را اجرا کرده باشید.
چرا فلسک برای شروع عالی است؟
- یادگیری بسیار سریع و ساده
- کدنویسی تمیز و خوانا
- انعطافپذیری در انتخاب ابزارهای جانبی
۱. فلسک چیست و چرا برای شروع گزینه مناسبی است؟
فلسک یک میکرو-فریمورک متنباز برای زبان برنامهنویسی پایتون است که به منظور توسعه سریع و آسان اپلیکیشنهای وب طراحی شده است. برخلاف فریمورکهای سنگین که ابزارهای زیادی را به صورت پیشفرض به شما تحمیل میکنند، فلسک تنها هسته اصلی را در اختیار شما قرار میدهد. این یعنی شما کنترل کاملی بر نحوه ساختاردهی پروژه خود دارید و مجبور نیستید کدهای اضافهای را که نیاز ندارید، مدیریت کنید.
در دنیای امروز، سرعت توسعه برای پروژههای کوچک و متوسط اهمیت زیادی دارد. استفاده از ابزاری که شما را درگیر تنظیمات پیچیده نکند، باعث میشود تمرکز اصلی خود را بر روی منطق برنامه و قابلیتهای آن بگذارید. بسیاری از استارتاپها و توسعهدهندگان مستقل برای ساخت ابزارهای داخلی، سرویسهای میکروسرویس و حتی وبسایتهای شخصی از همین ابزار استفاده میکنند.
برای اینکه درک بهتری از جایگاه فلسک داشته باشید، بهتر است نگاهی به تفاوت آن با سایر ابزارهای توسعه وب بیندازیم:
| ویژگی | فلسک (Flask) | جنگو (Django) |
|---|---|---|
| نوع فریمورک | میکرو | کامل (Full-stack) |
| سادگی یادگیری | بسیار زیاد | متوسط |
چرا فلسک یک میکرو-فریمورک است؟
عبارت “میکرو” در اینجا به معنای ضعیف بودن نیست؛ بلکه به معنای مینیمالیستی بودن هسته اصلی آن است. این فریمورک به جای اینکه یک مجموعه بزرگ از امکانات از پیش تعیین شده را به شما تحمیل کند، فقط ملزومات اولیه برای مدیریت درخواستهای HTTP و پاسخ به آنها را فراهم میکند.
این رویکرد به شما اجازه میدهد تا هر زمان که به قابلیتی نیاز داشتید (مثلاً اتصال به دیتابیس یا احراز هویت)، از افزونههای مخصوص همان بخش استفاده کنید. این یعنی پروژه شما همیشه سبک باقی میماند و دقیقاً همانقدر که نیاز دارید، امکانات دارد.
تفاوت فلسک با سایر فریمورکهای وب
تفاوت اصلی در “دیدگاه” است. فریمورکهای سنگین مانند جنگو، یک معماری “همه چیز حاضر” دارند. آنها دیتابیس، پنل ادمین، احراز هویت و بسیاری موارد دیگر را از ابتدا در اختیار شما میگذارند. اما فلسک معتقد است که شما باید آزادی انتخاب داشته باشید.
۲. پیشنیازهای شروع کار با فلسک
قبل از اینکه اولین خط کد خود را بنویسید، باید محیط توسعه خود را به درستی آماده کنید. داشتن یک محیط مرتب، از بروز خطاهای آزاردهنده در آینده جلوگیری میکند. اولین چیزی که نیاز دارید، آخرین نسخه پایدار پایتون است. مطمئن شوید که پایتون به درستی در سیستم شما نصب شده و در ترمینال قابل دسترس است.
علاوه بر پایتون، شما به یک ویرایشگر کد مناسب نیاز دارید. پیشنهاد ما استفاده از VS Code یا PyCharm است که ابزارهای قدرتمندی برای مدیریت پروژههای پایتونی ارائه میدهند. نصب بودن این ابزارها، کار شما را در مدیریت فایلها و اشکالزدایی کدهای وب بسیار راحتتر میکند.
در نهایت، باید با مفاهیم اولیه خط فرمان (Terminal/Command Prompt) آشنا باشید، زیرا بخش عمدهای از تنظیمات اولیه و اجرای سرور از طریق دستورات متنی انجام میشود. اگر هنوز در استفاده از خط فرمان کمی تردید دارید، جای نگرانی نیست، در ادامه گامبهگام پیش میرویم.
نصب و تنظیم پایتون روی سیستم
ابتدا به وبسایت رسمی پایتون مراجعه کنید و نسخه مخصوص سیستمعامل خود را دانلود و نصب کنید. نکته کلیدی در هنگام نصب در ویندوز، فعال کردن گزینه “Add Python to PATH” است. این گزینه باعث میشود که بتوانید در هر کجای سیستم از طریق ترمینال، دستورات پایتون را اجرا کنید.
چرا باید از محیط مجازی (Virtual Environment) استفاده کنیم؟
این شاید مهمترین بخش برای هر توسعهدهنده پایتون باشد. محیط مجازی به شما اجازه میدهد برای هر پروژه خود، کتابخانههای جداگانهای داشته باشید. این کار باعث میشود که نسخههای مختلف کتابخانهها در سیستم شما با هم تداخل پیدا نکنند و پروژههای شما همیشه در محیطی ایزوله و امن باقی بمانند.
۳. نصب و راهاندازی محیط پروژه
پس از آمادهسازی پیشنیازها، حالا نوبت به ایجاد زیرساختهای واقعی پروژه میرسد. برای شروع، یک پوشه اختصاصی برای پروژه خود در سیستمعاملتان ایجاد کنید؛ این پوشه در واقع خانه تمام فایلهای برنامه وب شما خواهد بود. پیشنهاد میکنم نامی کوتاه و مرتبط، مثلاً “my_flask_app” را انتخاب کنید و سپس با استفاده از ترمینال، وارد این مسیر شوید.
قدم بعدی، فعالسازی محیط مجازی است که در بخش قبل اهمیت آن را بررسی کردیم. این کار باعث میشود هر کتابخانهای که برای پروژه خود نصب میکنید، در همین پوشه محصور بماند و سیستمعامل شما را شلوغ نکند. با اجرای دستورات مشخص در ترمینال، محیط ایزوله خود را فعال کنید؛ پس از فعالسازی، خواهید دید که نام محیط مجازی در کنار پرامپت ترمینال شما ظاهر میشود که نشاندهنده موفقیت عملیات است.
در نهایت، برای نصب خودِ فریمورک فلسک، کافی است از ابزار مدیریت بسته پایتون یعنی pip استفاده کنید. با یک دستور ساده، فلسک دانلود و در محیط مجازی شما مستقر میشود. این فرآیند بسیار سریع است و پس از اتمام، شما آماده خواهید بود تا ساختار فایلهای اصلی برنامه را پیادهسازی کنید.
ایجاد پوشه پروژه و فایلهای مورد نیاز
ساختار فایلها در فلسک بسیار منعطف است، اما برای شروع و سادگی کار، بهتر است با یک فایل اصلی به نام app.py شروع کنید. این فایل قلب تپنده برنامه شما خواهد بود. علاوه بر این فایل، همیشه داشتن یک پوشه برای تصاویر، فایلهای CSS و همچنین قالبهای HTML (که در جلسات بعد به آنها خواهیم پرداخت) از همان ابتدا تمرین بسیار خوبی است که به منظم بودن پروژه در آینده کمک شایانی میکند.
نصب کتابخانه Flask با استفاده از pip
برای نصب، کافیست در ترمینال عبارت pip install flask را تایپ کرده و اینتر بزنید. با این کار، پایتون به صورت خودکار آخرین نسخه پایدار را از مخازن اصلی دانلود کرده و در پوشه پروژه شما قرار میدهد. اگر با خطایی مواجه شدید، مطمئن شوید که محیط مجازی شما فعال است یا دسترسیهای لازم برای اجرای دستورات pip در سیستم شما تعریف شده است.
۴. نوشتن اولین برنامه: Hello World در فلسک
حالا به هیجانانگیزترین بخش مسیر رسیدهایم: نوشتن اولین کدهایی که وبسایت شما را زنده میکند. فلسک به شکلی طراحی شده که تنها با چند خط کد کوتاه، میتوانید یک سرور وب کامل داشته باشید. در فایل app.py که ایجاد کردید، ابتدا باید کلاس اصلی فلسک را فراخوانی کنید و یک نمونه (Instance) از آن بسازید تا اپلیکیشن شما تعریف شود.
ساختار کدنویسی در فلسک بر پایه «دکوراتورها» (Decorators) است. دکوراتورها به شما اجازه میدهند بدون تغییر در کدهای اصلی، ویژگیهای جدیدی به توابع خود اضافه کنید. در این مثال، ما از دکوراتور مسیردهی استفاده میکنیم تا به سرور بگوییم وقتی کاربر به آدرس اصلی سایت (یعنی روت “/”) مراجعه میکند، کدام تابع باید اجرا شود و چه محتوایی را نمایش دهد.
بسیاری از برنامهنویسان تازهکار در ابتدا از حجم کم کدها شگفتزده میشوند. فلسک تمام کارهای پیچیده پشتصحنه مثل مدیریت سوکتهای شبکه و پروتکلهای HTTP را مدیریت میکند تا شما فقط روی منطق برنامه و خروجی نهایی تمرکز کنید. پس از نوشتن این چند خط، شما رسماً اولین وبسرویس پایتونی خود را نوشتهاید.
در ادامه، خلاصهای از مراحل کدنویسی را برای درک بهتر مرور میکنیم:
- وارد کردن کتابخانه Flask به پروژه
- ایجاد یک متغیر به عنوان اپلیکیشن (app)
- تعریف مسیر (Route) برای صفحه اصلی
- نوشتن تابعی که متن Hello World را برمیگرداند
- تنظیم برنامه برای اجرا در حالت دیباگ
این رویکرد، پایه و اساس تمام پروژههای بزرگتر شما در آینده خواهد بود و هر چقدر که پروژه گسترش یابد، همچنان همین ساختار ساده را حفظ خواهد کرد.
ساخت فایل اصلی (app.py)
فایل app.py را در ویرایشگر خود باز کنید و کدهای مربوط به ایمپورت کردن Flask و تعریف اولین مسیر را وارد کنید. دقت کنید که فاصله گذاریها و رعایت تورفتگیها (Indentation) در پایتون حیاتی هستند؛ پس حتماً از چهار فاصله استاندارد برای تورفتگیها استفاده کنید تا برنامه با خطا مواجه نشود.
تحلیل کدهای نوشته شده (توضیح خط به خط)
در اولین خط کد، ما پکیج اصلی را فراخوانی کردیم. سپس با ایجاد شیء برنامه، هسته اصلی را مقداردهی کردیم. دکوراتوری که قبل از تابع میبینید، در واقع آدرس اینترنتی را به آن تابع متصل میکند. در انتها، تابع بازگشتی صرفاً یک رشته متنی را برمیگرداند که مرورگر آن را به عنوان محتوای وبسایت به کاربر نشان میدهد.
۵. اجرای وبسایت در مرورگر
تبریک میگویم! حالا که کدهای شما آماده شده است، زمان آن رسیده که نتیجه تلاشهایتان را در دنیای واقعی ببینید. اجرای برنامه در فلسک برخلاف زبانهای برنامهنویسی سطح پایین، نیازی به نصب سرورهای پیچیده مثل Apache یا Nginx در مراحل اولیه ندارد. خودِ فلسک دارای یک سرور توسعه داخلی است که برای آزمایش و عیبیابی در محیط محلی (Local Development) طراحی شده است.
برای اجرای این سرور، کافیست از طریق ترمینال و در همان محیط مجازی که قبلاً فعال کردهاید، دستور اجرای اسکریپت پایتونی خود را صادر کنید. پس از اجرای دستور، فلسک به صورت خودکار یک آدرس در اختیار شما قرار میدهد که در واقع همان درگاه ورود به وبسایت شماست. این محیط توسعه، با قابلیتهایی نظیر “Reload” خودکار، به شما کمک میکند که به محض تغییر در کد و ذخیره فایل، تغییرات را فوراً در مرورگر مشاهده کنید.
اگر با موفقیت مراحل قبل را طی کرده باشید، با وارد کردن آدرس مشخص شده در نوار مرورگر، باید پیام خوشآمدگویی که در کد خود تعریف کردید را مشاهده کنید. این لحظه، نقطه عطفی برای هر توسعهدهنده وب است؛ زیرا شما نه تنها کدنویسی کردید، بلکه موفق شدید محیطی را ایجاد کنید که تعامل بین کاربر و کد شما را از طریق پروتکل HTTP ممکن میسازد.
این فرآیند ساده، به شما اعتماد به نفس کافی برای اضافه کردن قابلیتهای جدید را میدهد. به یاد داشته باشید که در طول این مسیر ممکن است با خطاهای تایپی یا عدم دسترسی به پورت مواجه شوید، اما این بخش جداییناپذیر یادگیری است که شما را به یک متخصص تبدیل میکند.
نحوه اجرای سرور محلی (Development Server)
در ترمینال، دستور python app.py را تایپ کنید. اگر تنظیمات را درست انجام داده باشید، خروجی ترمینال به شما میگوید که “Running on http://127.0.0.1:5000”. این آدرسِ اختصاصی سیستم شماست که فقط برای خودتان قابل دسترس است، مگر اینکه تنظیمات خاصی برای اشتراکگذاری در شبکه محلی اعمال کنید.
مشاهده خروجی در لوکال هاست
مرورگر خود (کروم، فایرفاکس یا غیره) را باز کرده و آدرس http://127.0.0.1:5000 را وارد کنید. اگر پیام “Hello, World!” را میبینید، یعنی شما با موفقیت اولین قدم را برداشتهاید. این صفحه، سادهترین شکلِ یک وبسایت است که میتواند شروعی برای ساخت وبسایتهای پیچیده و دیتابیسمحور باشد.
۶. آشنایی با مفاهیم کلیدی برای قدمهای بعدی
اکنون که میدانید چگونه یک اپلیکیشن ساده را اجرا کنید، وقت آن رسیده است که دید خود را برای پروژههای بزرگتر گسترش دهید. فلسک دنیایی از امکانات را برای توسعهدهندگان آماده کرده است. مفاهیم “مسیریابی” و “قالببندی” دو ستون اصلی هستند که به شما کمک میکنند از یک صفحه متن ساده به سمت ساخت صفحات پویا و چند صفحهای حرکت کنید.
در دنیای واقعی، هیچ وبسایتی فقط یک صفحه نیست و محتوای ثابت ندارد. مفاهیمی که در ادامه معرفی میشوند، به شما اجازه میدهند تا دادهها را از دیتابیس بگیرید، فرمهای تماس بسازید و صفحات را بر اساس نیاز کاربر شخصیسازی کنید. یادگیری این مبانی، همان چیزی است که تفاوت بین یک اسکریپت ساده و یک وبسایت کامل را تعیین میکند.
پیشنهاد میکنیم پس از تسلط بر مفاهیم زیر، حتماً روی پروژههای کوچک مثل “لیست کارهای روزانه” (To-Do List) تمرکز کنید. تمرین عملی، بهترین راه برای تثبیت این آموختههاست. با درک دقیق مسیردهی، شما میتوانید وبسایت خود را به بخشهای مختلف مانند “درباره ما”، “تماس با ما” و “محصولات” تقسیم کنید.