Blueprints এর মাধ্যমে Route এবং Views ভাগ করা

Flask এবং Blueprints - ফ্লাস্ক (Flask) - Web Development

350

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 এর সুবিধা

  1. মডুলার ডিজাইন: একটি অ্যাপ্লিকেশনকে বিভিন্ন ফিচারে ভাগ করে কাজ করা সহজ হয়।
  2. কোড পুনঃব্যবহারযোগ্যতা: একাধিক অ্যাপ্লিকেশন বা মডিউলে একটিমাত্র ব্লুপ্রিন্ট ব্যবহার করা যায়।
  3. স্কেলেবিলিটি: যখন অ্যাপ্লিকেশনটি বড় হয়, তখন ব্লুপ্রিন্ট ব্যবহারে কোড পরিচালনা করা সহজ হয়।
  4. পরিষ্কার এবং সংগঠিত কোড: রাউট ও ভিউ হ্যান্ডলিং আলাদা আলাদা ফোল্ডারে রাখা যায়, যা কোডের সংগঠন উন্নত করে।

Flask Blueprints হল একটি খুবই শক্তিশালী এবং গুরুত্বপূর্ণ ফিচার যা Flask অ্যাপ্লিকেশনে রাউট এবং ভিউ আলাদা আলাদা ফাইল বা মডিউলে ভাগ করতে সহায়তা করে। এটি আপনার অ্যাপ্লিকেশনকে আরও মডুলার, রিইউজেবল এবং স্কেলেবল করে তোলে। Flask-এর এই বৈশিষ্ট্যটি বড় এবং জটিল অ্যাপ্লিকেশনে কোড পরিচালনা সহজ এবং কার্যকর করতে সাহায্য করে।

Content added || updated By
Promotion

Are you sure to start over?

Loading...