Flask-এর Dynamic Routing এবং URL Variables আপনাকে ডাইনামিক URL তৈরি করার সুযোগ দেয়, যেখানে URL প্যারামিটারগুলো ব্যবহারকারীর ইনপুট বা ডেটা অনুযায়ী পরিবর্তিত হতে পারে। এই পদ্ধতিটি আপনাকে একটি ফ্লেক্সিবল এবং ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। Flask-এ ডাইনামিক রাউটিং ও URL ভেরিয়েবল ব্যবহার করা খুবই সহজ এবং শক্তিশালী।
১. Dynamic Routing in Flask
Dynamic Routing Flask-এ এমন একটি কনসেপ্ট, যেখানে আপনি URL প্যারামিটার ব্যবহার করে ডাইনামিক রাউট তৈরি করতে পারেন। এটি মূলত সেই সমস্ত URL এর জন্য ব্যবহৃত হয় যেগুলোর অংশ পরিবর্তনশীল (variable), যেমন ব্যবহারকারীর নাম, পোস্ট আইডি ইত্যাদি।
উদাহরণ: Basic Dynamic Routing
from flask import Flask
app = Flask(__name__)
@app.route("/user/<username>")
def show_user_profile(username):
return f"স্বাগতম {username}!"
এখানে:
<username>হলো একটি ডাইনামিক প্যারামিটার।- Flask এই প্যারামিটারটিকে
show_user_profile()ফাংশনে পাঠিয়ে দেয়, যেখানে আপনি সেই প্যারামিটারটি ব্যবহার করতে পারেন।
যেমন:
http://127.0.0.1:5000/user/john- রেসপন্স: "স্বাগতম john!"
http://127.0.0.1:5000/user/mary- রেসপন্স: "স্বাগতম mary!"
এখানে, URL প্যারামিটার username ব্যবহারকারীর নাম গ্রহণ করছে এবং সেটি দেখাচ্ছে।
২. Types of URL Variables
Flask-এ আপনি URL প্যারামিটারগুলোর ধরনও নির্দিষ্ট করতে পারেন। Flask কিছু সাধারণ টাইপের URL প্যারামিটার সাপোর্ট করে যেমন string, int, float, path ইত্যাদি।
উদাহরণ: URL Variables with Type
string (ডিফল্ট):
- এটি ডিফল্ট টাইপ। এখানে কোনও টাইপ নির্দিষ্ট না করলে এটি স্ট্রিং ধরনের প্যারামিটার হিসেবে কাজ করবে।
@app.route("/post/<string:slug>") def show_post(slug): return f"পোস্ট: {slug}"int (পূর্ণসংখ্যা):
- এটি শুধুমাত্র পূর্ণসংখ্যা গ্রহণ করবে।
@app.route("/post/<int:post_id>") def show_post(post_id): return f"পোস্ট আইডি: {post_id}"উদাহরণ:
http://127.0.0.1:5000/post/1- রেসপন্স: "পোস্ট আইডি: 1"
http://127.0.0.1:5000/post/abc- এটি ত্রুটি দেবে, কারণ
abcএকটি পূর্ণসংখ্যা নয়।
- এটি ত্রুটি দেবে, কারণ
float (দশমিক সংখ্যা):
- এটি দশমিক সংখ্যাও গ্রহণ করবে।
@app.route("/price/<float:amount>") def show_price(amount): return f"মূল্য: {amount} টাকা"path (পথ):
- এটি পুরো পাথ (path) গ্রহণ করবে, যা স্পেস বা স্ল্যাশ (/) দিয়ে বিভক্ত হতে পারে।
@app.route("/files/<path:file_path>") def show_file(file_path): return f"ফাইল পাথ: {file_path}"
৩. URL Variable ব্যবহার করে ডাইনামিক রাউট
URL Variable ব্যবহার করে আপনি ডাইনামিক রাউট তৈরি করতে পারেন যেগুলি অ্যাপ্লিকেশনের বিভিন্ন ফাংশন বা ডেটা অনুযায়ী পরিবর্তিত হবে। উদাহরণস্বরূপ, একটি ব্লগ সাইটের পোস্ট আইডি অনুযায়ী ডাইনামিক রাউট তৈরি করা।
from flask import Flask
app = Flask(__name__)
# Dynamic Route for Blog Post
@app.route("/post/<int:post_id>")
def show_post(post_id):
# এখানে পোস্ট আইডি অনুযায়ী ডেটা ডেটাবেস থেকে নেওয়া যাবে
return f"এটি পোস্ট আইডি: {post_id} এর বিস্তারিত।"
if __name__ == "__main__":
app.run(debug=True)
এখানে, <int:post_id> প্যারামিটারটি ব্যবহার করে ডাইনামিকভাবে পোস্ট আইডি গ্রহণ করা হয়েছে। এই প্যারামিটারটি আপনার অ্যাপ্লিকেশনে বিভিন্ন ব্লগ পোস্ট বা অন্যান্য তথ্য অনুসন্ধান করতে ব্যবহৃত হতে পারে।
৪. Query Parameters
Flask-এ URL Variables ছাড়াও Query Parameters ব্যবহার করা যায়। এটি URL এর মধ্যে ? চিহ্ন দিয়ে একটি প্যারামিটার প্রেরণ করা হয়। যেমন, ?key=value ফর্ম্যাটে।
উদাহরণ: Query Parameters
from flask import Flask, request
app = Flask(__name__)
@app.route("/search")
def search():
query = request.args.get('q', '') # 'q' হলো query parameter
return f"আপনি অনুসন্ধান করেছেন: {query}"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
request.args.get('q'): এটি URL থেকেqনামের প্যারামিটারটি নেয়। উদাহরণস্বরূপ,http://127.0.0.1:5000/search?q=flaskএflaskশব্দটি কোডের মধ্যে ব্যবহার করা হবে।
৫. URL Building with url_for
Flask-এ url_for() ফাংশন ব্যবহার করে আপনি ডাইনামিক URL তৈরি করতে পারেন। এর মাধ্যমে আপনার অ্যাপ্লিকেশনের রাউটের URL তৈরি করা সহজ এবং আরও নিরাপদ হয়, কারণ এতে হার্ডকোডিং এড়ানো যায়।
উদাহরণ: url_for ব্যবহার করা
from flask import Flask, url_for
app = Flask(__name__)
@app.route("/")
def home():
return 'হোম পেজে স্বাগতম!'
@app.route("/user/<username>")
def profile(username):
return f"স্বাগতম {username}!"
@app.route("/redirect")
def redirect_home():
return f"আপনি রিডাইরেক্ট হচ্ছেন: {url_for('home')}"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
url_for('home'): এটি/রাউটের জন্য ডাইনামিক URL তৈরি করে। এটি ব্রাউজারে/URL রিডাইরেক্ট করবে।
Flask-এ Dynamic Routing এবং URL Variables ব্যবহার করে আপনি সহজে ডাইনামিক ও শক্তিশালী URL তৈরি করতে পারেন, যা আপনার অ্যাপ্লিকেশনকে আরও গতিশীল এবং নমনীয় করে তোলে। URL প্যারামিটার ব্যবহার করে আপনি ডাইনামিক রাউট তৈরি করতে পারবেন এবং url_for() ব্যবহার করে সেগুলোর URL ডায়নামিকভাবে তৈরি করতে পারবেন, যা আপনার কোডকে আরও পরিষ্কার এবং সুরক্ষিত রাখে।
Read more