Web2Py এর URL রাউটিং সিস্টেম একটি গুরুত্বপূর্ণ অংশ যা ইউজারের রিকোয়েস্ট অনুযায়ী অ্যাপ্লিকেশনকে নির্দেশনা দেয়। এটি কিভাবে ওয়েব রিকোয়েস্টগুলোকে নিয়ন্ত্রণ করা হয় এবং কিভাবে কন্ট্রোলার ফাংশন এবং ভিউ ফাইলের সাথে সংযুক্ত করা হয়, তা নির্ধারণ করে।
Web2Py তে URL রাউটিং সিস্টেম controller এবং action এর মাধ্যমে কাজ করে। রাউটিং সিস্টেমটি ওয়েব অ্যাপ্লিকেশনকে কিভাবে বিভিন্ন ইউআরএল হ্যান্ডল করতে হবে, তা ঠিক করে দেয়।
Web2Py তে URL রাউটিং সিস্টেমের মৌলিক ধারণা
Web2Py তে URL রাউটিং প্রক্রিয়া controller এবং action এর মাধ্যমে পরিচালিত হয়। এর মাধ্যমে ইউজারকে নির্দিষ্ট ফাংশন বা ভিউ প্রদর্শন করা হয়।
- Controller: একটি কোড ফাইল যেখানে অ্যাপ্লিকেশনের লজিক থাকে। এখানে ফাংশন গুলি থাকে যেগুলি ইউজারের ইনপুট গ্রহণ করে এবং প্রক্রিয়া করে উপযুক্ত আউটপুট পাঠায়।
- Action: একটি ফাংশন, যা কন্ট্রোলার এর ভিতরে থাকে এবং তা ইউআরএল পাথে ম্যাপ করা হয়।
URL রাউটিং স্ট্রাকচার
Web2Py তে URL রাউটিং সাধারণত নিম্নলিখিত কাঠামোতে কাজ করে:
http://<server>/app_name/controller_name/action_name
- app_name: অ্যাপ্লিকেশনের নাম।
- controller_name: কন্ট্রোলারের নাম।
- action_name: কন্ট্রোলারে থাকা ফাংশনের নাম (অথবা এক্সিকিউটেবল কোডের নাম)।
যখন একটি ইউজার রিকোয়েস্ট পাঠায়, Web2Py এই রিকোয়েস্টকে কন্ট্রোলারের নির্দিষ্ট ফাংশনের সাথে রাউট করে এবং সেই ফাংশনটি সংশ্লিষ্ট ভিউর সাথে সংযুক্ত হয়।
URL রাউটিং উদাহরণ
ধরা যাক, আপনি একটি অ্যাপ্লিকেশন তৈরি করেছেন যার নাম myapp। এবং এর মধ্যে একটি কন্ট্রোলার রয়েছে যার নাম default। এখন যদি আপনি index নামে একটি অ্যাকশন ফাংশন তৈরি করেন, তাহলে এর URL হবে:
http://127.0.0.1:8000/myapp/default/index
এখানে:
- myapp → অ্যাপ্লিকেশনের নাম
- default → কন্ট্রোলারের নাম
- index → কন্ট্রোলারের একটি অ্যাকশন (ফাংশন)
controller (কন্ট্রোলার) এর উদাহরণ
controllers/default.py ফাইলের মধ্যে একটি index() ফাংশন হতে পারে:
def index():
return dict(message="Welcome to myapp!")
এই ফাংশনটি index অ্যাকশন হিসেবে রাউট হবে এবং যখন ইউজার http://127.0.0.1:8000/myapp/default/index URL এ প্রবেশ করবে, তখন এটি "Welcome to myapp!" মেসেজটি দেখাবে।
Dynamic URL Routing
Web2Py তে ডায়নামিক URL রাউটিংও সম্ভব, যেখানে ইউজারের ইনপুট অনুসারে URL রাউট পরিবর্তিত হতে পারে। উদাহরণস্বরূপ, যদি আপনি URL এ ডাইনামিক প্যারামিটার পাস করেন, তাহলে কন্ট্রোলার সেই প্যারামিটার গ্রহণ করে উপযুক্ত কাজ করতে পারে।
Dynamic URL Example
ধরা যাক, আপনি একটি অ্যাকশন তৈরি করেছেন যা ব্যবহারকারীর নাম গ্রহণ করবে এবং সেটি প্রদর্শন করবে:
def greet(name):
return dict(message="Hello, %s!" % name)
এখন আপনি URL এ নাম প্যারামিটার পাস করতে পারবেন:
http://127.0.0.1:8000/myapp/default/greet/John
এই URL তে greet() ফাংশন John প্যারামিটার গ্রহণ করবে এবং আউটপুটে "Hello, John!" মেসেজ দেখাবে।
URL রাউটিং কাস্টমাইজেশন
Web2Py তে URL রাউটিং কাস্টমাইজও করা যায়, যেখানে আপনি কিছু রাউটিং কনফিগারেশন পরিবর্তন করতে পারেন। এটি routes.py ফাইলের মাধ্যমে করা যায়। উদাহরণস্বরূপ, আপনি যদি চান যে কোনও URL এর মাধ্যমে কোনো নির্দিষ্ট কন্ট্রোলারের অ্যাকশন কল হোক, তবে তা routes.py ফাইলের মাধ্যমে কাস্টমাইজ করা যাবে।
routes.py উদাহরণ
routes_in = (
('/greet/<name>', '/default/greet/<name>'),
)
এটি মানে যে, ইউজার /greet/John এই URL এ গেলে, এটি /default/greet/John অ্যাকশনে রাউট হবে।
সারাংশ
Web2Py তে URL রাউটিং সিস্টেম একটি সোজা এবং শক্তিশালী সিস্টেম, যা ইউজারের রিকোয়েস্টকে কন্ট্রোলার এবং অ্যাকশনের মাধ্যমে ভিউতে রূপান্তরিত করে। Web2Py তে সাধারণভাবে controller এবং action এর মাধ্যমে URL রাউট করা হয়। এটি ডায়নামিক রাউটিং এবং কাস্টমাইজড রাউটিং সমর্থন করে, যাতে ডেভেলপাররা ওয়েব অ্যাপ্লিকেশনে সহজে ইউজার ইনপুট অনুযায়ী কার্যকরী URL সিস্টেম তৈরি করতে পারেন।
Read more