آموزش فلسک رایگان
فلسک (Flask) یک میکروفریمورک سبک و انعطافپذیر برای توسعه وب است که بر پایه زبان برنامهنویسی پایتون ساخته شده است. این فریمورک به دلیل سادگی، قابلیت گسترش بالا و انعطافپذیری، مورد توجه بسیاری از توسعهدهندگان وب قرار گرفته است. در این مقاله، به آموزش فلسک رایگان، بررسی جزئیات فلسک، معماری آن، ویژگیهای کلیدی، نصب و راهاندازی و مزایای آن خواهیم پرداخت.
اگر به دنبال آموزش برنامه نویسی و یا از علاقهمندان به زبان برنامه نویسی پایتون و فریمورکهای آن هستید ما در نیک وب 360 تمام این آموزشها را برای شما عزیزان فراهم کرده ایم و در مسیر پیشرفت و یادگیری شما همراهتان هستیم.
فلسک در سال 2010 توسط «آرمین روناکر» (Armin Ronacher) به عنوان یک پروژه جانبی از Werkzeug و Jinja2 توسعه داده شد. هدف از ایجاد فلسک، ارائه یک فریمورک ساده و کمحجم برای توسعه برنامههای وب بود که انعطافپذیری بالایی داشته باشد. با گذشت زمان، فلسک به یکی از محبوبترین فریمورکهای پایتون و وب تبدیل شد و پس از آن به صورت گسترده در پروژههای کوچک و بزرگ مورد استفاده قرار گرفت.
ویژگیهای فلسک
فلسک دارای ویژگیهای بسیار مفیدی است که شما با آموزش فلسک رایگان میتوانید به استفاده از این ویژگیها بپردازید و ازین فریمورک استفاده کنید. در ادامه به معرفی برخی از این ویژگیها میپردازیم.
- سادگی و یادگیری آسان: فلسک همانند خود پایتون دارای یک ساختار ساده است و یادگیری و استفاده از آن بسیار آسان و روان است.
- انعطافپذیری بالا: فلسک به شما این امکان را میدهد تا از هر کتابخانهای برای مدیریت دیتابیس خود و سایر قابلیتهای مد نظرتان استفاده کنید.
- مناسب برای پروژههای کوچک و متوسط: یادگیری و پیاده سازی فلسک بهویژه برای پروژههایی که نیاز به راهاندازی سریع دارند، مناسب است.
- اکوسیستم گسترده و افزونههای قوی: یادگیری فلسک نحوه استفاده از افزونههای مختلف را برای گسترش قابلیتهای فریمورک را به شما آموزش میدهد.
- سادگی و انعطافپذیری: فلسک طراحی مینیمالیستی دارد و توسعهدهندگان میتوانند به راحتی آن را گسترش دهند.
- ماژولار بودن: میتوان تنها ماژولهای موردنیاز را به پروژه اضافه کرد.
- سبک بودن: به دلیل عدم وابستگی به اجزای غیرضروری، عملکرد بهتری نسبت به برخی فریمورکهای سنگینتر مانند Django دارد.
- پشتیبانی از افزونهها: فلسک با بسیاری از افزونههای پایتون ادغام میشود، از جمله SQLAlchemy برای مدیریت پایگاه داده و Jinja2 برای قالببندی صفحات وب.
- مبتنی بر WSGI: فلسک از پروتکل WSGI برای اجرای درخواستهای وب استفاده میکند.
معماری و اجزای اصلی فلسک
حال بیایید در قدم بعدی آموزش فلسک رایگان معماری این فریمورک محبوب را برسی کنیم.
1. URLs و مسیریابی
در فلسک، سیستم مسیریابی تعیین میکند که وقتی یک کاربر به یک URL خاص مراجعه میکند، چه محتوایی نمایش داده شود. این کار از طریق دکوراتور مخصوص انجام میشود. مسیرها میتوانند ثابت باشند (مثلاً صفحه اصلی یا صفحه درباره ما) یا شامل متغیرهایی باشند که بهعنوان ورودی دریافت میشوند (مثلاً نمایش پروفایل یک کاربر بر اساس نام او).
2. Views و کنترلکنندهها
در فلسک، ویوها معمولاً توابعی هستند که درخواستهای دریافتی را پردازش کرده و پاسخ مناسب را تولید میکنند. این توابع در واقع کنترلکنندههایی هستند که مشخص میکنند وقتی کاربر به یک صفحه خاص مراجعه میکند، چه اتفاقی باید بیفتد. آنها میتوانند دادهها را پردازش کرده و به قالبها ارسال کنند یا یک پاسخ ساده برگردانند.
3. Templates و نمایش دادهها
فلسک برای نمایش دادهها از یک موتور قالبسازی به نام Jinja2 استفاده میکند. این سیستم به شما اجازه میدهد تا متغیرها و دادههای داینامیک را در صفحات HTML جایگذاری کنید و همچنین از قابلیتهایی مانند حلقهها و شرطها برای مدیریت محتوای صفحه استفاده کنید. این روش کمک میکند که ظاهر سایت از منطق پردازشی جدا شود و بهینهتر مدیریت گردد.
4. مدیریت پایگاه داده
فلسک بهصورت پیشفرض پایگاه داده داخلی ندارد، اما میتوان از افزونههایی مانند SQLAlchemy برای ارتباط با پایگاه داده استفاده کرد. این سیستم مدیریت پایگاه داده کمک میکند تا دادهها بهصورت سازمانیافته ذخیره و بازیابی شوند. با استفاده از ORM (Object Relational Mapping)، میتوان بدون نیاز به نوشتن مستقیم کوئریهای SQL، دادهها را مدیریت کرد.
5. Middleware و پردازش درخواستها
Middleware در فلسک به شما این امکان را میدهد که قبل یا بعد از پردازش درخواست، تغییراتی روی آن انجام دهید. این قابلیت برای مواردی مانند ثبت گزارش فعالیتها، بررسی اعتبار کاربران، تغییر دادهها و اجرای کدهای خاص قبل از ارسال پاسخ به کاربر استفاده میشود.
6. احراز هویت و مدیریت کاربران
فلسک برای مدیریت کاربران از افزونههایی مانند Flask-Login استفاده میکند. این سیستم به شما اجازه میدهد که ورود و خروج کاربران را کنترل کنید، اطلاعات کاربران را ذخیره کنید و دسترسی به بخشهای مختلف سایت را بر اساس وضعیت ورود کاربران مدیریت نمایید. با استفاده از این قابلیت، میتوان صفحاتی را ایجاد کرد که فقط کاربران مجاز به آنها دسترسی داشته باشند.
آموزش فلسک رایگان: نصب و راهاندازی فلسک
پیش از استفاده از فلسک باید از نصب پایتون روی سیستم مطمئن باشید. اگر چگونگی اطلاع از نصب پایتون روی سیستمتان را بلد نیستید، میتوانید به مقاله آموزش جنگو مراجعه کنید و مراحل ذکر شده را دنبال کنید.
pip install flask
این دستور فلسک را روی سیستم شما نصب میکند. شما پس از نصب میتوانید به ادامه آموزش فلسک رایگان در کنار ما بپردازید.
حال بیایید یک برنامه ساده با فلسک ایجاد کنیم:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask!"
if __name__ == '__main__':
app.run(debug=True)
توضیح کد فوق: در خط اول ماژول فلسک را از کتابخانه فلسک وارد میکنیم، سپس یک کلاس فلسک ایجاد میکنیم که برنامه را اجرا کند. دستور @app.route('/')
برای تعریف مسیر صفحه شما استفاده میشود.
خروجی: بعد از اجرای این کد، اگر در مرورگر http://127.0.0.1:5000/
را باز کنید، عبارت “Hello, Flask!” دیده میشود.
آموزش فلسک رایگان: مدیریت مسیرها (Routing)
در فلسک، مسیرها (routes) مشخص میکنند که وقتی کاربر به یک آدرس خاص مراجعه کرد، چه اتفاقی رخ بدهد. برای مثال:
@app.route('/about')
def about():
return "این صفحه درباره ما است."
توضیح کد فوق: در این کد مشخص میشود اگر کاربر به آدرس /about
مراجعه کرد، با پیام “این صفحه درباره ما است.” مواجه شود.
خروجی: اگر در مرورگر http://127.0.0.1:5000/about
را جستجو کنید، متن “این صفحه درباره ما است.” را میبینید.
آموزش فلسک رایگان: قالببندی با Jinja2
Jinja2 یک موتور قالبسازی (Template Engine) است که امکان استفاده از متغیرها و دستورات کنترلی را در صفحات HTML فراهم میکند. بهعنوان مثال، برای نمایش یک لیست از کاربران:
<!DOCTYPE html>
<html>
<head><title>Users</title></head>
<body>
<h1>لیست کاربران</h1>
<ul>
{% for user in users %}
<li>{{ user }}</li>
{% endfor %}
</ul>
</body>
</html>
توضیح کد فوق:
{% for user in users %}
: حلقهای است که روی لیست کاربران تکرار میشود و کاربران را برمیگرداند.{{ user }}
: مقدار هر کاربر را داخل یک تگ<li>
نمایش میدهد.{% endfor %}
: حلقه ایجاد شده در اینجا به پایان میرسد.
حالا برای نمایش این صفحه از سمت سرور لازم است دستورات زیر را در فایل فلسک خود وارد کنید:
from flask import render_template
@app.route('/users')
def show_users():
users = ["علی", "زهرا", "مهدی"]
return render_template('users.html', users=users)
توضیح کد فوق: شما لیستی از کاربران با نامهای علی، زهرا و مهدی ایجاد کردید. با باز شدن صفحه http://127.0.0.1:5000/users
، لیست کاربران در آن صفحه نمایش داده میشود.
آموزش فلسک رایگان: کار با پایگاه داده
فلسک بهصورت پیشفرض از پایگاه دادهای پشتیبانی نمیکند، اما میتوان از افزونههایی مانند SQLAlchemy
برای مدیریت پایگاه داده استفاده کرد. برای نصب این افزونه از دستور زیر استفاده کنید:
pip install flask-sqlalchemy
حال میتوانید در پروژه خود از این پایگاه داده برای کاربران استفاده کنید:
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db' # مسیر پایگاه داده
db = SQLAlchemy(app) # ایجاد نمونهای از پایگاه داده
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
def __repr__(self):
return f'User({self.username})'
توضیح کد فوق:
class User(db.Model)
: یک جدول برای کاربران ایجاد میکند.id
: مشخص میکند که هر کاربر یک شناسه یکتا دارد.username
: باعث میشود نام کاربری افراد تکراری نباشد.
آموزش فلسک رایگان: مدیریت درخواستها و پاسخها
فلسک امکان دریافت دادههای ارسالشده توسط کاربران را فراهم میکند:
from flask import request
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
return f'نام کاربری: {username}, رمز عبور: {password}'
توضیح کد فوق:
methods=['POST']
: مشخص میکند که این مسیر فقط درخواستهایPOST
را قبول کند.request.form['username']
: مقدار فیلدusername
را از فرم دریافت میکند.request.form['password']
: مقدار رمز عبور را دریافت میکند.- در نهایت پاسخ دریافت شده به کاربر نمایش داده میشود.
آموزش فلسک رایگان: احراز هویت و مدیریت کاربران
یکی از افزونههای محبوب برای احراز هویت در فلسک Flask-Login
است:
pip install flask-login
پس از نصب این افزونه شما میتوانید بهراحتی لاگین و لاگاوت کاربران را مدیریت کنید.
آموزش فلسک رایگان: مقایسه فلسک با جنگو
ویژگی | فلسک | جنگو |
---|---|---|
سبک بودن | بله | خیر |
دارای ORM داخلی | خیر | بله |
انعطافپذیر | بله | کمتر |
یادگیری سریع | بله | خیر |
این موضوع را در نظر بگیرید که هر دو این فریمورکها با توجه به نیاز پروژه شما میتواند بهترین گزینه باشد. همچنین فراموش نکنید زبان برنامه نویسی پایتون از زبانهای محبوب توسعه هوش مصنوعی است.
فلسک یک فریمورک سبک و قابل توسعه برای ساخت برنامههای وب است که به دلیل سادگی و انعطافپذیری، انتخاب مناسبی برای پروژههای کوچک و متوسط محسوب میشود. اگرچه برای پروژههای بزرگ ممکن است نیاز به افزودن افزونههای مختلف داشته باشد، اما این مسئله باعث میشود که کنترل بیشتری بر پروژه داشته باشید و تنها قابلیتهای موردنیاز را به آن اضافه کنید. یادگیری این فریمورک آسان بوده و شما با یادگیری آن میتوانید وارد دنیای برنامه نویسی پایتون شوید.