Flask، یک چارچوب وب میکرو (micro web framework) رایگان و منبع باز برای پایتون است که به منظور کمک به توسعهدهندگان در ایجاد برنامههای وب امن، مقیاسپذیر و قابل نگهداری طراحی شده است. Flask، مبتنی بر Werkzeug است و از Jinja2 به عنوان یک موتور الگو استفاده میکند.
برخلاف Django، به طور پیش فرض Flask شامل ORM، اعتبار سنجی فرم یا سایر قابلیتهای ارائه شده توسط کتابخانههای شخص ثالث نیست. بلکه Flask با در نظر گرفتن برنامههای افزودنی ساخته شده است. آن برنامهها بستههای Python هستند که به برنامه Flask قابلیتهایی را اضافه میکنند.
روشهای مختلفی برای نصب Flask در اوبونتو وجود دارد.
بستههای Flask در مخازن رسمی اوبونتو گنجانده شدهاند و میتوانند با استفاده از ابزار مدیریت بسته apt نصب شوند. اگرچه این سادهترین راه برای نصب Flask در اوبونتو ۲۰٫۰۴ است؛ ولیکن به انعطافپذیری نصب در یک محیط مجازی نیست. همچنین، نسخه موجود در مخازن ممکن است از آخرین نسخه Flask پایینتر باشد.
محیطهای مجازی به شما امکان میدهد، برای پروژههای مختلف پایتون یک محیط مستقل و جدا ایجاد کنید. بدین صورت میتوانید، چندین محیط مختلف Flask را روی یک رایانه داشته و نسخه خاصی از یک ماژول را بر اساس هر پروژه نصب نمایید؛ بدون نگرانی از اینکه بر سایر نصبهای Flask شما تأثیر میگذارد. این در حالی است که اگر Flask را در محیط غیرمجازی نصب کنید، تنها میتوانید، یک نسخه Flask را روی رایانه خود نصب داشته باشید.
در این مقاله، چگونگی نصب Flask در Ubuntu 20.04 در یک محیط مجازی پایتون شرح داده شده است.
نصب Flask برروی Ubuntu 20.04
اوبونتو ۲۰٫۰۴ با پایتون ۳٫۸ سازگار است. با استفاده از دستور زیر میتوانید، نسخه پایتون نصب شده روی سیستم خود را به دست آورید:
python3 -V
با اجرای دستور، خروجی مشابه زیر را مشاهده خواهید کرد:
Output:
Python 3.8.5
روش توصیه شده برای ایجاد یک محیط مجازی استفاده از ماژول venv است که توسط بسته python3-venv ارائه میشود. برای نصب این بسته کافیست دستور زیر را اجرا نمایید:
sudo apt install python3-venv
پس از نصب ماژول، آماده ایجاد یک محیط مجازی برای برنامه Flask هستید.
بدین منظور، ابتدا به آن دایرکتوری بروید که میخواهید محیطهای مجازی Python 3 را در آن ذخیره کنید. این دایرکتوری میتواند دایرکتوری اصلی شما یا هر دایرکتوری دیگری باشد که کاربر شما اجازه خواندن و نوشتن را داشته باشد.
در آن دایرکتوری، یک دایرکتوری جدید برای برنامه Flask ایجاد کرده و وارد آن شوید:
mkdir flask_app && cd flask_app
برای ایجاد محیط مجازی، دستور زیر را در داخل دایرکتوری اجرا نمایید:
python3 -m venv venv
این دستور، یک دایرکتوری به نام venv ایجاد میکند که شامل یک کپی از باینری پایتون، مدیریت بسته Pip، کتابخانه استاندارد پایتون و سایر فایلهای پشتیبانی است. شما میتوانید از هر نامی که میخواهید برای این محیط مجازی استفاده کنید.
برای شروع استفاده از محیط مجازی، باید آن را با اسکریپت فعالسازی بصورت زیر فعال نمایید:
source venv/bin/activate
پس از فعال شدن، پوشه bin محیط مجازی در ابتدای متغیر PATH$ اضافه میشود. علاوهبراین، ظاهر پوسته شما تغییر کرده و نام محیط مجازی را که در حال حاضر استفاده میکنید، نمایش داده می شود که در این مثال venv است.
اکنون که محیط مجازی فعال شده است، برای نصب Flask از مدیریت بسته pip پایتون استفاده نمایید:
(venv) $ pip install Flask
در محیط مجازی میتوانید از دستور pip به جای pip3 و python به جای python3 استفاده کنید.
برای تأیید نصب، دستور زیر را اجرا کنید تا نسخه Flask را مشاهده نمایید:
(venv) $ python -m flask --version
در این صورت خروجی مشابه زیر خواهد بود.
Output:
Python 3.8.5
Flask 1.1.2
Werkzeug 1.0.1
دقت کنید که نسخه Flask شما ممکن است با نسخه نشان داده شده در این مثال متفاوت باشد.
ایجاد یک برنامه
در این بخش، یک برنامه ساده Hello World ایجاد خواهیم کرد که پیام “Hello World!” را چاپ مینماید.
ویرایشگر متن خود یا Python IDE را باز کرده و فایل زیر را ایجاد نمایید:
~/flask_app/hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
شرح کد در ادامه بیان شده است:
- خط اول، کلاس Flask را اضافه میکند.
- خط دوم، نمونه جدیدی از کلاس Flask را ایجاد میکند.
- در خط سوم، ()route به منظور ثبت تابع hello_world برای مسیر “/” استفاده میشود. هنگامیکه این مسیر درخواست میشود، تابع فراخوانی شده و پیام “Hello World!” به مشتری برگردانده میشود.
فایل را با عنوان hello.py ذخیره کرده و به پنجره ترمینال خود برگردید.
در اینجا، برای اجرای برنامه از دستور flask استفاده شده است، اما قبل از آن، باید با تنظیم متغیر محیطی FLASK_APP به پوسته برنامه بگویید که با flask کار کند:
(venv) $ export FLASK_APP=hello.py
(venv) $ flask run
دستور بالا سرور داخلی را راهاندازی میکند.
در این صورت، خروجی چیزی شبیه به شکل زیر است:
Output:
* Serving Flask app "hello.py"
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
اگر Flask را روی یک ماشین مجازی نصب کردهاید و میخواهید به سرور Flask دسترسی پیدا کنید، میتوانید با افزودن host=0.0.0.0– به دستور flask run، به سرور دسترسی پیدا کنید.
اکنون اگر http://127.0.0.1:5000 را در مرورگر وب خود باز نمایید، پیام “Hello World!” به شما نمایش داده میشود.
به منظور متوقف کردن سرور، CTRL-C را در ترمینال خود تایپ کنید.
پس از اتمام کار، با تایپ کردن deactivate، محیط را غیرفعال نمایید تا به پوسته اصلی خود باز گردید.
(venv) $ deactivate