URL Mapping হলো একটি প্রক্রিয়া যেখানে ওয়েব অ্যাপ্লিকেশনের বিভিন্ন URL বা URI পাথকে তাদের সম্পর্কিত ফাংশন, মেথড বা ভিউ-এর সাথে ম্যাপ করা হয়। CherryPy তে, URL Mapping এর মাধ্যমে আপনি ওয়েব অ্যাপ্লিকেশনটি কীভাবে ক্লায়েন্টের রিকোয়েস্ট গ্রহণ করবে এবং প্রক্রিয়া করবে তা নির্ধারণ করেন।
CherryPy তে, URL Mapping সাধারণত @cherrypy.expose ডেকোরেটরের মাধ্যমে করা হয়। যখন একটি রিকোয়েস্ট আসে, CherryPy সেই রিকোয়েস্টটি রুটের সাথে মিলিয়ে নির্দিষ্ট মেথড বা ফাংশনকে কল করে।
URL Mapping এর মৌলিক ধারণা
CherryPy তে, URL Mapping মূলত পাথ (path) এর সাথে মেথডের সংযোগ স্থাপন করে। অর্থাৎ, আপনি নির্দিষ্ট URL পাথের জন্য একটি মেথড বা ফাংশন তৈরি করেন এবং CherryPy সেই মেথড বা ফাংশনটি ব্যবহার করবে রিকোয়েস্টটি হ্যান্ডেল করার জন্য।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "এটি রুট পেজ (Root Page)"
@cherrypy.expose
def about(self):
return "এটি অ্যাবাউট পেজ (About Page)"
@cherrypy.expose
def contact(self):
return "এটি কন্ট্যাক্ট পেজ (Contact Page)"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, CherryPy তে /, /about এবং /contact এই URL পাথগুলো index, about এবং contact মেথডগুলোর সাথে ম্যাপ করা হয়েছে।
/রুট পাথকেindexমেথডে ম্যাপ করা হয়েছে।/aboutপাথকেaboutমেথডে ম্যাপ করা হয়েছে।/contactপাথকেcontactমেথডে ম্যাপ করা হয়েছে।
URL Mapping কীভাবে কাজ করে?
CherryPy তে, URL Mapping কাজ করে এইভাবে:
- Request Handling: যখন কোনও ইউজার একটি URL পাথ এ রিকোয়েস্ট পাঠায় (যেমন:
http://localhost:8080/about), CherryPy সেই URL পাথটি মেটাচ্ছে কিনা পরীক্ষা করে। - Method Mapping: CherryPy সেই URL পাথের সাথে সংশ্লিষ্ট মেথড বা ফাংশন কল করে। উদাহরণস্বরূপ,
/aboutURL রিকোয়েস্ট হলেabout()মেথডটি কল হবে। - Response: মেথডটি তার রিটার্ন ভ্যালু (যেমন: HTML, JSON, বা টেক্সট) ফেরত পাঠাবে, যা ব্রাউজারে প্রদর্শিত হবে।
Dynamic URL Mapping
CherryPy তে আপনি ডায়নামিক URL Mapping করতে পারেন, যেখানে URL পাথের অংশগুলিকে পরিবর্তনশীল হিসেবে ব্যবহার করা হয়। এটি ডাইনামিক রাউটিং এর জন্য সহায়ক।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "এটি রুট পেজ (Root Page)"
@cherrypy.expose
def greet(self, name):
return f"হ্যালো, {name}!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে /greet/<name> রাউটটি greet() মেথডের সাথে ম্যাপ করা হয়েছে। আপনি যদি /greet/Rahul লিখেন, তাহলে রেসপন্স হবে:
হ্যালো, Rahul!
এটি ডায়নামিক URL Mapping, যেখানে name প্যারামিটারটি ইউজারের ইনপুট অনুযায়ী বদলাবে।
URL Mapping এবং Configuration
CherryPy তে URL Mapping কনফিগারেশন ফাইলের মাধ্যমে কাস্টমাইজ করা যায়। আপনি আলাদা আলাদা URL রাউটের জন্য কনফিগারেশন ফাইল ব্যবহার করতে পারেন।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "এটি রুট পেজ (Root Page)"
@cherrypy.expose
def about(self):
return "এটি অ্যাবাউট পেজ (About Page)"
config = {
'/about': {
'tools.sessions.on': True # সেশন সমর্থন চালু
}
}
if __name__ == '__main__':
cherrypy.quickstart(MyApp(), '/', config)
এখানে /about রুটের জন্য সেশন চালু করা হয়েছে।
CherryPy তে URL Mapping ওয়েব অ্যাপ্লিকেশনের জন্য একটি অত্যন্ত গুরুত্বপূর্ণ ধারণা। এর মাধ্যমে বিভিন্ন URL পাথকে নির্দিষ্ট মেথড বা ফাংশনের সাথে যুক্ত করা হয়। এটি ডায়নামিক এবং কাস্টম URL রাউটিং সিস্টেম তৈরি করতে সহায়তা করে, যা ওয়েব অ্যাপ্লিকেশনকে আরও নমনীয় ও শক্তিশালী করে তোলে।
Read more