میکروفریمورک فلسک - معرفی
فلسک یک فریمورک وب مبتنی بر پایتون است که توسط آرمینروناچر یکی از معروفترین توسعهدهندگان پایتون نوشتهشده است. ایدهی فلسک بسیار شبیه برادرش سیناترا است که در برای روبی طراحی شده است. در طراحی فلسک امکانات پایهی مینیمال برپایهی استانداردهای پایتون قرار داده شده و تلاش برای سادهنگه داشتن و کوچکی فریمورک و قائل نشدن بسیاری از پیشفرض ها برای برنامهنویسان دلیلیاست که این بستهنرم افزار را یک میکروفریمورک مینامند. فلسک با مجوز آزاد BSD منتشر شده است.
مثال خوبی از سرویسهای اینترنتی که از فلسک استفاده میکنند پینترست است. هماکنون شرکتهای بزرگی چون linkedin نیز در پروداکشن خود از فلسک استفاده میکنند که بیانگر مناسب بودن فلسک برای توسعهی سرویسهای اینترنتی است.
اگر با زبان پایتون آشنا باشید با دیدن اولین کدهای فلسک با ساختار این فریمورک آشنا میشوید. فریمورک فلسک با همهی سادگی خود بسیار قدرتمند و کاراست و به هیچ عنوان کوچک بودن فریمورک را نمیتوان با ضعیف بودن آن برابر دانست و امکانات فریمورکهایی مثل جنگو و ریلز را با اندکی جستوجو به دست میدهد.
در طراحی این فریمورک دو کتابخانهی اساسی پایههای قدرتمند فلسک را ساختهاند. به عنوان واسط وبسرور ( WSGI ) از کتابخانه ی werkzeug و برای تمپلیتانجین از Jinja2 استفاده کرده اند که هردو کتابخانه توسط تیم توسعه ی فلسک توسعه یافته شده است.
بطور پیشفرض برای کار با دیتابیسها، اعتبارسنجی فرم ها و کاربران و از این دست کارها ابزار مشخصی در فلسک تعریف نشده است و میتوانید به انتخاب خود با ابزارهایی که احساس راحتی بیشتری میکنید کار کنید.
نصب فلسک
معقولترین راه نصب فلسک و راهاندازی پروژههای فلسکی ساخت یک محیط توسعه مجازی است. محیطهای توسعهمجازی یک کپی از مفسر پایتون را بصورت خصوصی در دایرکتوری پروژه شما ایجاد میکند و بعد از فعال کردن این مفسر پکیجها هم بصورت خصوصی در دایرکتوری پروژه نصب میشوند. با این روش مفسر عمومی و پکیجهای عمومی سیستم دچار تغییر و کانفلیکت نمیشوند. درمورد Virtualenv بیشتر بخوانید…
با دستور زیر بررسی کنید که virtualenv روی سیستم شما نصب شده باشد :
virtualenv --version
برای ساخت یک محیط توسعه مجازی با virtualenv دستور زیر را بکار ببرید. بجای envdir میتوانید هرنامی را استفاده کنید که فایلهای ساخته شده توسط virtualenv در آن قرار بگیرند :
virtualenv envdir
و پس از نصب باید هربار که پروژه را اجرا میکنید مفسر خصوصی نصب شده با virtualenv را فعال کنید.
در لینوکس دستور زیر :
source envdir/bin/activate
و در ویندوز دستور زیر :
envdir\Scripts\activate
این مفسر را فعال میکند.
اگر مراحل را درست طی کرده باشید حالا نوبت نصب بسته ی فلسک است. متداول ترین روش نصب بستههای پایتون استفاده از مدیر بسته ی pip است که در آن فلسک با دستور زیر نصب میشود :
pip install flask
برای بررسی صحت نصب فلسک مفسر پایتون را بصورت تعاملی در ترمینال باز کنید ( تنها دستور python را اینتر کنید ) و بستهی فلسک را با دستور زیر فراخوانی کنید :
import flask
اگر خطایی رخ نداد فلسک درست نصب شده است.
ساختار برنامهها در فلسک
فلسک هیچ محدودیتی درمورد ساختاربندی فایلهای پروژه برای شما ایجاد نمیکند و میتوانید ساختار خودتان را داشته باشید یا از رولهای متداول جامعه ی فلسک استفاده کنید.
در این راهنما یک فایل با نام app.py در دایرکتوری پروژه میسازیم و کدها و مثالها را در آن به شما نشان میدهیم.
ساخت برنامه های فلسک
کدهای یک اپلیکیشن سادهی فلسک که عبارت Hello World
را در یک صفحه ی وب نمایان میکند بصورت زیر است :
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
این برنامه از چند بخش تشکیل شده است : فراخوانی و تعریف فلسک ، تعریف مسیرها، اجرای فلسک.
برای ساخت برنامههای فلسک نیاز است ابتدا فلسک را در فایل .py خود لود کنید و سپس یک اینستس از Flask بسازید یعنی این بخش :
from flask import Flask
app = Flask(__name__)
تنها آرگومان مورد نیاز برای کانستراکتور فلسک نام ماژول یا پکیج main است که برای بیشتر برنامه ها ` name_` در پایتون مقدار درستی است.
میتوانیم بجای نام اینستنس فلسک ( در مثال بالا app ) هر نام متغیر معتبری استفاده کنیم.
بخش بعدی تعریف مسیرهاست. مسیرها همان آدرس های url مختلفی هستند که عملیاتهای متفاوت در آن ها انجام میشود مثلا www.coderz.ir
مسیر ریشه و www.coderz.ir/python
یک مسیر دیگر در همان سایت تعریف میکند. در کد مثال ما مسیر بصورت زیر تعریف شده بود :
@app.route('/')
def hello_world():
return 'Hello World!'
که یک دکوریتور از app که در قسمت قبل ساختیم تعریف میکند به نام route()
که آدرس مسیر ('/'
) را به آن میفرستد. مسیرها در فلسک اساس ساخت برنامهها هستند. با استفاده از مسیرها میتوانید به سادگی بخشهای مختلف وباپلیکیشن خود را بسازید و مدیریت کنید.
در قسمت آخر هم به پایتون میگوییم که فلسک را روی یک وبسرور اجرا کند که دستورات آن بصورت زیر است :
if __name__ == '__main__':
app.run()
این کد را در یک فایل مانند app.py ذخیره کرده و در خط فرمان با دستور python app.py
اجرا کنید. خروجی روی ترمینال چیزی شبیه این است :
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
که آدرس 127.0.0.1:5000 را که در خروجی مشخص شده است اگر در مرورگر خود امتحان کنید روی صفحه عبارت Hello World نمایان میشود :)
افرونهها
فلسک یک فریمورک بسیار توسعه پذیر است و میتوانید بصورت ماژولار کدهای آن را تقسیم بندی و استفاده کنید. همچنین پلاگینهای بسیاری هماکنون برای آن نوشته شده است که میتوانید در صفحهی extension های فلسک تعدادی از بهترین افزونههای فلسک را بیابید و استفاده کنید.