Flask-এ Route তৈরি এবং URL কনফিগার করা দুটি গুরুত্বপূর্ণ প্রক্রিয়া, যা আপনাকে আপনার অ্যাপ্লিকেশনটির বিভিন্ন পেজ বা ভিউ এর জন্য নির্দিষ্ট URL এবং ফাংশন অ্যাসোসিয়েট করতে সাহায্য করে। Flask-এর রাউটিং ব্যবস্থা অত্যন্ত নমনীয় এবং সহজ, যা বিভিন্ন ধরনের রাউট তৈরি করতে সহায়ক।
১. Flask Route তৈরি করা
Flask-এ রাউট তৈরি করার জন্য @app.route() ডেকোরেটর ব্যবহার করা হয়। এটি URL এবং একটি ফাংশনকে একসাথে সংযুক্ত করে। যখন ব্যবহারকারী সেই URL অ্যাক্সেস করবেন, তখন Flask সেই URL-এর জন্য নির্ধারিত ফাংশনটি চালাবে।
উদাহরণ:
from flask import Flask
app = Flask(__name__)
@app.route("/") # হোম পেজ রাউট
def home():
return "স্বাগতম হোমপেজে!"
@app.route("/about") # অ্যাবাউট পেজ রাউট
def about():
return "এটি আমাদের সম্পর্কে পৃষ্ঠা।"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
@app.route("/"):/URL এ গিয়ে home() ফাংশনটি চালু হবে।@app.route("/about"):/aboutURL এ গিয়ে about() ফাংশনটি চালু হবে।
যখন ব্যবহারকারী http://127.0.0.1:5000/ URL এ যাবেন, তারা "স্বাগতম হোমপেজে!" টেক্সট দেখতে পাবেন, এবং http://127.0.0.1:5000/about URL এ গেলে তারা "এটি আমাদের সম্পর্কে পৃষ্ঠা।" দেখবেন।
২. Dynamic Route (ডাইনামিক রাউট) তৈরি করা
Flask-এ ডাইনামিক রাউট তৈরি করা যায়, যেখানে URL প্যারামিটার ব্যবহার করে ভিউ ফাংশনকে ডাইনামিকভাবে পরিচালিত করা হয়। এই ধরনের রাউট URL থেকে ডেটা গ্রহণ করতে পারে এবং তা ব্যবহার করতে পারে।
উদাহরণ:
@app.route("/user/<username>")
def show_user_profile(username):
return f"স্বাগতম {username}!"
এখানে:
<username>: এটি একটি ডাইনামিক প্যারামিটার। ব্যবহারকারী যখনhttp://127.0.0.1:5000/user/johnURL অ্যাক্সেস করবেন, তখন Flask john নামক প্যারামিটারটি show_user_profile() ফাংশনে পাঠাবে।
এটি "স্বাগতম john!" প্রদর্শন করবে।
আরও বিস্তারিত প্যারামিটার টাইপ:
Flask-এ আপনি প্যারামিটারের টাইপও নির্দিষ্ট করতে পারেন, যেমন পূর্ণসংখ্যা, স্ট্রিং, ইত্যাদি।
@app.route("/post/<int:post_id>")
def show_post(post_id):
return f"পোস্ট আইডি: {post_id}"
এখানে:
<int:post_id>: শুধুমাত্র পূর্ণসংখ্যা (integer) প্যারামিটার গ্রহণ করবে।
যেমন:
http://127.0.0.1:5000/post/1- এটি পোস্ট আইডি: 1 দেখাবে।http://127.0.0.1:5000/post/abc- এটি ত্রুটি দেখাবে কারণabcপূর্ণসংখ্যা নয়।
৩. URL কনফিগারেশন এবং URL Building
Flask-এ URL Building একটি শক্তিশালী ফিচার, যা url_for() ফাংশন ব্যবহার করে URL তৈরি করতে সাহায্য করে। এটি URL গুলি ডায়নামিকভাবে তৈরি করার সুবিধা প্রদান করে, যাতে আপনি কোডে হার্ডকোড করা 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-homeURL-এ গেলে আপনি দেখবেন "রিডাইরেক্ট করুন: /"।
Dynamic URL Building:
যখন আপনি ডাইনামিক URL চান, তখন url_for() ফাংশন প্যারামিটারও গ্রহণ করতে পারে:
@app.route("/user/<username>")
def show_user_profile(username):
return f"স্বাগতম {username}!"
@app.route("/redirect-user/<username>")
def redirect_user(username):
return f"রিডাইরেক্ট করুন: {url_for('show_user_profile', username=username)}"
এখানে:
url_for('show_user_profile', username='john'): এটি/user/johnURL তৈরি করবে।
৪. HTTP Methods (GET, POST, PUT, DELETE)
Flask-এ রাউট তৈরি করার সময় আপনি কোন 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 উভয় রিকোয়েস্টের জন্য রাউটটি গ্রহণ করবে।
৫. HTTP Status Codes
Flask-এ আপনি রেসপন্সের সাথে HTTP Status Code পাঠাতে পারেন। এটি সার্ভারের সাড়া (response) সম্পর্কে আরও বিস্তারিত তথ্য প্রদান করে।
উদাহরণ:
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-এ Routing এবং URL Building অত্যন্ত গুরুত্বপূর্ণ বিষয়। Flask আপনাকে সহজভাবে রাউট তৈরি করতে দেয় এবং url_for() ফাংশনের মাধ্যমে ডায়নামিক URL তৈরি করতে সাহায্য করে। ডাইনামিক রাউটিং, URL বিল্ডিং, এবং HTTP মেথডের মাধ্যমে Flask আপনার অ্যাপ্লিকেশনটির রাউটিং সিস্টেম আরও শক্তিশালী এবং নমনীয় করে তোলে।
Read more