Web2Py তে Routing কনফিগারেশন একটি গুরুত্বপূর্ণ অংশ, যেটি ইউজারের রিকোয়েস্ট এবং কন্ট্রোলার অ্যাকশনের মধ্যে সংযোগ স্থাপন করে। এটি URL থেকে কন্ট্রোলার এবং অ্যাকশন কল করার জন্য ব্যবহৃত হয়। Web2Py তে ডিফল্টভাবে রাউটিং ব্যবস্থা সহজ এবং স্বয়ংক্রিয়, তবে কাস্টম রাউটিং কনফিগারেশনও করা যেতে পারে যাতে আপনি আপনার অ্যাপ্লিকেশন এর URL গুলোর কাঠামো কাস্টমাইজ করতে পারেন।
Web2Py তে Routing কনফিগারেশন
১. ডিফল্ট রাউটিং
Web2Py তে ডিফল্ট রাউটিং ফরম্যাট হলো:
http://127.0.0.1:8000/your_app_name/controller_name/action_name
যেখানে:
- your_app_name: আপনার অ্যাপ্লিকেশনের নাম
- controller_name: কন্ট্রোলারের নাম (যেমন
default,adminইত্যাদি) - action_name: কন্ট্রোলারের ফাংশনের নাম, যা HTTP রিকোয়েস্টের ভিত্তিতে কল হয়
যেমন:
http://127.0.0.1:8000/myapp/default/index
এটি default.py কন্ট্রোলারের index() অ্যাকশন কল করবে।
২. কাস্টম রাউটিং
Web2Py তে আপনি ডিফল্ট রাউটিং এর কাঠামো পরিবর্তন করতে পারেন। কাস্টম রাউটিং কনফিগারেশন করার জন্য routes.py ফাইল ব্যবহার করা হয়। এই ফাইলটি আপনার অ্যাপ্লিকেশনের মূল ডিরেক্টরিতে তৈরি করতে হবে।
৩. routes.py ফাইল
Web2Py তে কাস্টম রাউটিং কনফিগার করার জন্য routes.py ফাইল তৈরি করতে হয়, যা রাউটিং কনফিগারেশন সম্পর্কিত নিয়ম এবং পাথগুলো ধারণ করে। routes.py ফাইলটি ডিফল্টভাবে আপনার অ্যাপ্লিকেশনের মূল ফোল্ডারে থাকবে এবং এতে URL প্যাটার্ন কাস্টমাইজ করা যাবে।
যেমন:
# routes.py
routes = (
('/custom_url', '/default/index'),
('/products/<category>/<id>', '/shop/product_details'),
)
এখানে দুটি কাস্টম রাউটিং উদাহরণ দেওয়া হয়েছে:
/custom_urlURL টি/default/indexঅ্যাকশনে রিডিরেক্ট হবে।/products/<category>/<id>URL প্যাটার্নটি কন্ট্রোলারshopএরproduct_detailsঅ্যাকশনকে কল করবে, যেখানেcategoryএবংidভ্যারিয়েবল হিসেবে পাস হবে।
কাস্টম রাউটিং উদাহরণ
১. ডিফল্ট URL পরিবর্তন
ধরা যাক আপনি /home URL এ default/index অ্যাকশন কল করতে চান। এর জন্য routes.py ফাইলে এই কনফিগারেশন করতে হবে:
# routes.py
routes = (
('/home', '/default/index'),
)
এখন, আপনি http://127.0.0.1:8000/myapp/home এ গিয়ে default/index অ্যাকশন কল করতে পারবেন।
২. URL প্যারামিটার ব্যবহার
ধরা যাক আপনি একটি পণ্যের বিস্তারিত দেখানোর জন্য কাস্টম URL প্যাটার্ন ব্যবহার করতে চান, যেখানে পণ্যের ক্যাটাগরি এবং আইডি URL এর মাধ্যমে পাস হবে:
# routes.py
routes = (
('/product/<category>/<id>', '/shop/product_details'),
)
এখানে /product/electronics/123 URL হলে এটি shop কন্ট্রোলারের product_details অ্যাকশন কল করবে এবং category ও id প্যারামিটার পাঠাবে।
আপনার কন্ট্রোলার ফাংশনটি এভাবে হবে:
# controllers/shop.py
def product_details():
category = request.args(0) # category প্যারামিটার
product_id = request.args(1) # id প্যারামিটার
# ডেটাবেস থেকে পণ্য অনুসন্ধান করা
product = db(db.product.category == category & (db.product.id == product_id)).select().first()
return dict(product=product)
এখন, আপনি http://127.0.0.1:8000/myapp/product/electronics/123 URL এ গিয়ে পণ্যের বিস্তারিত দেখতে পারবেন।
৩. URL কনভার্সন
Web2Py তে আপনি URL কনভার্সনও করতে পারেন। উদাহরণস্বরূপ, যদি আপনি URL থেকে অংশ মুছে ফেলতে চান বা অংশ যোগ করতে চান:
# routes.py
routes = (
('/old_url', '/new_url'),
)
এখানে, /old_url URL টিকে /new_url এ রিডিরেক্ট করা হবে।
কাস্টম রাউটিং এর সুবিধা
- SEO ফ্রেন্ডলি URL: আপনি URL গুলো SEO (Search Engine Optimization) এর জন্য কাস্টমাইজ করতে পারবেন, যাতে তা বেশি পছন্দযোগ্য হয়।
- ইউজার-ফ্রেন্ডলি URL: কাস্টম রাউটিং ব্যবহারের মাধ্যমে আপনি ইউজারদের জন্য আরও সহজ এবং বোঝার উপযোগী URL গঠন করতে পারবেন।
- URL প্যারামিটার ব্যবহারের সুবিধা: কাস্টম রাউটিং ব্যবহার করে URL এর মধ্যে প্যারামিটার পাস করা এবং ডায়নামিক পেজ তৈরি করা সহজ হবে।
সারাংশ
Web2Py তে Routing কনফিগারেশন ডিফল্টভাবে সহজ এবং সরল হলেও আপনি কাস্টম রাউটিং সেটআপ করতে পারেন। কাস্টম রাউটিং এর মাধ্যমে আপনি URL গুলোর কাঠামো কাস্টমাইজ করতে পারবেন এবং অ্যাপ্লিকেশনটির কার্যকারিতা আরও নিখুঁতভাবে কনফিগার করতে পারবেন। routes.py ফাইল ব্যবহার করে আপনি সহজেই রাউটিং প্যাটার্ন এবং URL গুলো কাস্টমাইজ করতে পারেন, যা SEO এবং ইউজার এক্সপেরিয়েন্স উন্নত করতে সহায়তা করে।
Read more