Flask-এ Blueprints একটি শক্তিশালী ফিচার যা আপনাকে অ্যাপ্লিকেশনের বিভিন্ন অংশ বা মডিউল আলাদা করে কোড সংগঠিত করার সুযোগ দেয়। এটি Flask অ্যাপ্লিকেশনকে আরও মডুলার, রিইউজেবল এবং স্কেলেবল করে তোলে। সাধারণভাবে, Flask অ্যাপ্লিকেশনটি একটি একক ফাইলে থাকে, কিন্তু Blueprints ব্যবহারের মাধ্যমে আপনি বিভিন্ন ফিচার বা সেবা আলাদা আলাদা ফোল্ডারে রাখার মাধ্যমে আপনার অ্যাপ্লিকেশনটিকে আরও সুসংগঠিত করতে পারেন।
Blueprints এর ধারণা
Flask Blueprints এর মাধ্যমে আপনি একটি অ্যাপ্লিকেশনের রুট (routes) এবং ভিউ (views) আলাদা আলাদা ফাইল বা মডিউলে ভাগ করতে পারেন। এটি বড় অ্যাপ্লিকেশনগুলোতে রাউট এবং ভিউ হ্যান্ডলিং সহজ এবং পরিচালনা করা আরও সুবিধাজনক করে।
Flask-এ Blueprints ব্যবহার করার জন্য ধাপ
ধাপ ১: Blueprint তৈরি করা
প্রথমে একটি ফোল্ডার তৈরি করে সেখানে ব্লুপ্রিন্ট ফাইল তৈরি করতে হবে। উদাহরণস্বরূপ, আমাদের দুটি ব্লুপ্রিন্ট থাকবে—একটি হোম পেজের জন্য এবং অন্যটি অ্যাডমিন প্যানেলের জন্য।
ধরি আমাদের অ্যাপ্লিকেশনের স্ট্রাকচার এমন হতে পারে:
flask_project/
├── app.py # প্রধান অ্যাপ্লিকেশন ফাইল
├── home/
│ ├── __init__.py # ব্লুপ্রিন্ট ইনিশিয়ালাইজেশন
│ └── routes.py # হোম রাউট
├── admin/
│ ├── __init__.py # ব্লুপ্রিন্ট ইনিশিয়ালাইজেশন
│ └── routes.py # অ্যাডমিন রাউট
└── templates/ # HTML টেমপ্লেট
├── home.html
└── admin.html
ধাপ ২: Home Blueprint তৈরি করা
home/routes.py ফাইলে রাউট এবং ভিউ ফাংশনগুলো তৈরি করা হবে:
# home/routes.py
from flask import Blueprint, render_template
home_bp = Blueprint('home', __name__)
@home_bp.route("/")
def home():
return render_template("home.html")
এখানে:
Blueprint('home', __name__): এটিhomeনামে একটি ব্লুপ্রিন্ট তৈরি করে।@home_bp.route("/"): হোম রাউটটি এই ব্লুপ্রিন্টের মধ্যে থাকবে।
ধাপ ৩: Admin Blueprint তৈরি করা
admin/routes.py ফাইলে অ্যাডমিন রাউটটি তৈরি করা হবে:
# admin/routes.py
from flask import Blueprint, render_template
admin_bp = Blueprint('admin', __name__)
@admin_bp.route("/admin")
def admin():
return render_template("admin.html")
এখানে:
Blueprint('admin', __name__): এটিadminনামে একটি ব্লুপ্রিন্ট তৈরি করে।@admin_bp.route("/admin"): অ্যাডমিন রাউটটি এই ব্লুপ্রিন্টের মধ্যে থাকবে।
ধাপ ৪: Blueprints অ্যাপ্লিকেশনে রেজিস্টার করা
এখন, app.py ফাইলে ব্লুপ্রিন্টগুলো রেজিস্টার করতে হবে যাতে Flask জানে যে, কোন রাউটগুলি কোন ব্লুপ্রিন্টে অন্তর্ভুক্ত থাকবে।
# app.py
from flask import Flask
from home.routes import home_bp
from admin.routes import admin_bp
app = Flask(__name__)
# ব্লুপ্রিন্ট রেজিস্টার করা
app.register_blueprint(home_bp)
app.register_blueprint(admin_bp)
if __name__ == "__main__":
app.run(debug=True)
এখানে:
app.register_blueprint(): এই ফাংশনটি ব্যবহার করে আমরা ব্লুপ্রিন্টগুলো Flask অ্যাপ্লিকেশনে রেজিস্টার করেছি।
ধাপ ৫: HTML টেমপ্লেট তৈরি
templates/home.html এবং templates/admin.html টেমপ্লেট ফাইল দুটি তৈরি করুন:
<!-- templates/home.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h1>Welcome to Home Page</h1>
<p>This is the home page content.</p>
</body>
</html>
<!-- templates/admin.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Admin</title>
</head>
<body>
<h1>Welcome to Admin Page</h1>
<p>This is the admin page content.</p>
</body>
</html>
Flask Blueprints এর সুবিধা
- মডুলার ডিজাইন: একটি অ্যাপ্লিকেশনকে বিভিন্ন ফিচারে ভাগ করে কাজ করা সহজ হয়।
- কোড পুনঃব্যবহারযোগ্যতা: একাধিক অ্যাপ্লিকেশন বা মডিউলে একটিমাত্র ব্লুপ্রিন্ট ব্যবহার করা যায়।
- স্কেলেবিলিটি: যখন অ্যাপ্লিকেশনটি বড় হয়, তখন ব্লুপ্রিন্ট ব্যবহারে কোড পরিচালনা করা সহজ হয়।
- পরিষ্কার এবং সংগঠিত কোড: রাউট ও ভিউ হ্যান্ডলিং আলাদা আলাদা ফোল্ডারে রাখা যায়, যা কোডের সংগঠন উন্নত করে।
Flask Blueprints হল একটি খুবই শক্তিশালী এবং গুরুত্বপূর্ণ ফিচার যা Flask অ্যাপ্লিকেশনে রাউট এবং ভিউ আলাদা আলাদা ফাইল বা মডিউলে ভাগ করতে সহায়তা করে। এটি আপনার অ্যাপ্লিকেশনকে আরও মডুলার, রিইউজেবল এবং স্কেলেবল করে তোলে। Flask-এর এই বৈশিষ্ট্যটি বড় এবং জটিল অ্যাপ্লিকেশনে কোড পরিচালনা সহজ এবং কার্যকর করতে সাহায্য করে।
Read more