Flask-এ Route হলো একটি প্রক্রিয়া যার মাধ্যমে URL পাথ (path) গুলোর সাথে Flask ভিউ ফাংশনগুলোকে যুক্ত করা হয়। যখন একজন ব্যবহারকারী একটি নির্দিষ্ট URL এর মাধ্যমে রিকোয়েস্ট পাঠায়, তখন Flask সেই রিকোয়েস্টের জন্য সংশ্লিষ্ট ফাংশনকে কার্যকর করে এবং ইউজারের কাছে রেসপন্স পাঠায়। এটি Flask-এর একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, কারণ এর মাধ্যমে ওয়েব পেজের বিভিন্ন অংশ বা API-গুলোর মধ্যে সংযোগ স্থাপন করা হয়।
Flask Routing এর ধারণা
Flask-এ Routing হলো URL পাথ (path) এবং HTTP মেথডের সাথে Flask ভিউ ফাংশনগুলোকে সংযুক্ত করার প্রক্রিয়া। যখন ব্যবহারকারী একটি URL অ্যাক্সেস করেন, Flask সেই URL এর জন্য নির্ধারিত ফাংশনকে এক্সিকিউট করে এবং রেসপন্স হিসেবে ব্যবহারকারীর কাছে পাঠায়।
Flask Route কী?
Flask-এ Route একটি URL পাথ যা একটি নির্দিষ্ট ফাংশনের সাথে যুক্ত থাকে। Flask আপনাকে একটি URL এর জন্য ফাংশন লিখতে দেয়, এবং যখন কেউ সেই URL অ্যাক্সেস করবে, তখন Flask সেই ফাংশনটিকে চালাবে।
Flask-এ রাউটিং সরাসরি @app.route() ডেকোরেটর (decorator) এর মাধ্যমে নির্ধারণ করা হয়। @app.route() ডেকোরেটর URL পাথের সাথে একটি ফাংশনকে যুক্ত করে এবং সেই URL যখন কল করা হয়, তখন সংশ্লিষ্ট ফাংশনটি কার্যকর হয়।
উদাহরণ:
from flask import Flask
app = Flask(__name__)
@app.route("/") # Root URL (হোমপেজ)
def home():
return "স্বাগতম হোমপেজে!"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
@app.route("/"): এটি হোম পেজের জন্য রাউট তৈরি করেছে, যেখানে/URL পাথটিhome()ফাংশনের সাথে যুক্ত হয়েছে।- যখন আপনি
http://127.0.0.1:5000/এই URL এ যান, তখন "স্বাগতম হোমপেজে!" রেসপন্সটি দেখা যাবে।
Route এর সাথে URL প্যারামিটার
Flask আপনাকে URL পাথের মধ্যে ডাইনামিক প্যারামিটার ব্যবহার করার সুবিধা দেয়। এটি URL থেকে মান গ্রহণ করতে সহায়ক, যেমন ইউজারের নাম, পোস্ট আইডি ইত্যাদি।
উদাহরণ:
@app.route("/user/<username>")
def show_user_profile(username):
return f"স্বাগতম {username}!"
এখানে:
<username>হলো একটি ডাইনামিক প্যারামিটার। এটি URL থেকে মান গ্রহণ করে এবং সেটিshow_user_profile()ফাংশনে পাঠায়।
যেমন:
http://127.0.0.1:5000/user/john- রেসপন্স হবে: "স্বাগতম john!"http://127.0.0.1:5000/user/mary- রেসপন্স হবে: "স্বাগতম mary!"
Flask-এ Route প্যারামিটার টাইপ
Flask-এ আপনি প্যারামিটার টাইপও নির্দিষ্ট করতে পারেন। এতে আপনি নির্দিষ্ট ধরনের মান গ্রহণ করতে পারেন, যেমন পূর্ণসংখ্যা, স্ট্রিং ইত্যাদি।
উদাহরণ:
@app.route("/post/<int:post_id>")
def show_post(post_id):
return f"পোস্ট আইডি: {post_id}"
এখানে:
<int:post_id>: এটি একটি পূর্ণসংখ্যা (integer) প্যারামিটার। তাই/post/123এ শুধুমাত্র পূর্ণসংখ্যা মান গ্রহণ করবে।
HTTP Methods (GET, POST, PUT, DELETE)
Flask রাউটিং সিস্টেম HTTP Methods নিয়ন্ত্রণ করার জন্য methods প্যারামিটার ব্যবহার করে। এতে আপনি নির্দিষ্ট HTTP মেথডের জন্য রাউটটি সক্রিয় করতে পারেন, যেমন GET, POST, PUT, DELETE ইত্যাদি।
উদাহরণ:
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
return "POST রিকোয়েস্ট করা হয়েছে"
return "GET রিকোয়েস্ট করা হয়েছে"
এখানে:
methods=["GET", "POST"]: এটি এই রাউটটিকে GET এবং POST উভয় রিকোয়েস্টের জন্য গ্রহণ করবে।- যদি
POSTরিকোয়েস্ট পাঠানো হয়, তাহলে"POST রিকোয়েস্ট করা হয়েছে"রেসপন্স হবে। - যদি
GETরিকোয়েস্ট পাঠানো হয়, তাহলে"GET রিকোয়েস্ট করা হয়েছে"রেসপন্স হবে।
Flask Route এর মাধ্যমে URL Return করা
আপনি Flask-এ URL গুলি রিটার্ন করতে পারেন url_for() ফাংশন ব্যবহার করে, যা URL বিল্ডিং-এর জন্য সহায়ক।
উদাহরণ:
from flask import Flask, url_for
app = Flask(__name__)
@app.route("/")
def home():
return "হোম পেজ"
@app.route("/about")
def about():
return "আমাদের সম্পর্কে পৃষ্ঠা"
@app.route("/redirect-home")
def redirect_home():
return f"রিডাইরেক্ট করুন: {url_for('home')}"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
url_for('home'): এটিhomeরাউটের জন্য সঠিক URL তৈরি করে, যা/হবে।
যদি আপনি /redirect-home URL এ যান, তাহলে এটি / (হোম পেজ) এর URL দেখাবে।
HTTP Status Code সহ Flask Route
Flask-এ আপনি রেসপন্সের সাথে HTTP Status Code পাঠাতে পারেন, যা সার্ভারের সাড়া সম্পর্কে বিস্তারিত তথ্য প্রদান করে। সাধারণত 200 (OK), 404 (Not Found), 500 (Internal Server Error) ব্যবহার করা হয়।
উদাহরণ:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/success")
def success():
return jsonify({"message": "Success!"}), 200
@app.route("/not-found")
def not_found():
return jsonify({"error": "Page not found"}), 404
এখানে:
200: এটি সফল রিকোয়েস্টের জন্য HTTP স্ট্যাটাস কোড।404: এটি পেজ না পাওয়ার (Not Found) জন্য HTTP স্ট্যাটাস কোড।
Flask Route-এ Static Files Serve করা
Flask-এ static files (যেমন CSS, JavaScript, ইমেজ) সার্ভ করার জন্য /static/ রাউট ব্যবহার করা হয়। Flask স্ট্যাটিক ফাইল গুলি আপনার অ্যাপ্লিকেশনের static/ ফোল্ডারে রাখবে।
উদাহরণ:
আপনার static ফোল্ডারে একটি style.css ফাইল রাখুন।
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
এটি /static/style.css URL থেকে CSS ফাইল লোড করবে।
Flask রাউটিং খুবই সহজ এবং নমনীয়, যার মাধ্যমে আপনি URL গুলোর সাথে সম্পর্কিত ভিউ ফাংশন তৈরি করতে পারেন এবং ডাইনামিক রাউটিং, HTTP মেথডস, URL বিল্ডিং, স্ট্যাটিক ফাইল, HTTP স্ট্যাটাস কোড ইত্যাদি পরিচালনা করতে পারেন। Flask-এর এই রাউটিং সিস্টেম আপনাকে আপনার অ্যাপ্লিকেশনের কার্যকারিতা সহজভাবে কাস্টমাইজ করতে সহায়তা করে।
Read more