CherryPy এ Custom Routes এবং Named Routes ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশনে বিভিন্ন ধরনের কাস্টম রুট (URL পাথ) তৈরি করতে পারেন, যা আপনাকে আপনার অ্যাপ্লিকেশনকে আরও নমনীয় এবং শক্তিশালীভাবে কাস্টমাইজ করার সুযোগ দেয়। CherryPy এ রুট তৈরি করার জন্য ক্লাস ভিত্তিক রাউটিং এবং URL ম্যানিপুলেশন করতে হয়।
Custom Routes
Custom Routes বা কাস্টম রাউটিং হলো এমন একটি প্রযুক্তি যার মাধ্যমে আপনি ওয়েব অ্যাপ্লিকেশনের URL গুলিকে কাস্টমাইজ করতে পারেন। CherryPy তে কাস্টম রাউটিং সাধারণত ক্লাস এবং মেথডের মাধ্যমে তৈরি করা হয়, যেখানে মেথডগুলো নির্দিষ্ট পাথ বা URL এ ম্যাপ করা হয়।
উদাহরণ: Custom Routes তৈরি করা
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def about(self):
return "এটি একটি অ্যাবাউট পেজ!"
@cherrypy.expose
def contact(self):
return "এটি একটি কন্ট্যাক্ট পেজ!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
indexমেথডটি/রুটের জন্য,aboutমেথডটি/aboutরুটের জন্য,contactমেথডটি/contactরুটের জন্য ম্যাপ করা হয়েছে।
URL Pattern Matching (Custom URL Patterns)
CherryPy তে আপনি URL প্যাটার্নও নির্ধারণ করতে পারেন। এটি আপনাকে dynamic URL পাথ তৈরি করতে সাহায্য করে, যেখানে URL এর অংশগুলো ভেরিয়েবল হিসেবে কাজ করতে পারে।
উদাহরণ: URL Pattern Matching
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def user(self, username):
return f"স্বাগতম, {username}!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
userমেথডটি/user/<username>পাথের জন্য ম্যাপ করা হয়েছে।- উদাহরণস্বরূপ, আপনি http://127.0.0.1:8080/user/JohnDoe লিখে "স্বাগতম, JohnDoe!" দেখতে পারবেন।
Named Routes
Named Routes হলো এমন একটি রাউটিং ব্যবস্থা যেখানে নির্দিষ্ট রুটের জন্য একটি নাম দেওয়া হয়। এটি আপনাকে URL গুলি আরও সুনির্দিষ্টভাবে পরিচালনা করতে সহায়তা করে। CherryPy তে named routes তৈরি করার জন্য সাধারণত কোডের মধ্যে রাউটগুলোকে আলাদা আলাদা ভাবে ডিফাইন করা হয়।
উদাহরণ: Named Routes তৈরি করা
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def user(self, username):
return f"স্বাগতম, {username}!"
@cherrypy.expose
def profile(self):
return "এটি আপনার প্রোফাইল পেজ।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
indexরুটটি/নামে পরিচিত,userরুটটি/user/<username>নামে পরিচিত।
Named Routes এর সুবিধা:
- নাম দেওয়া রুটের মাধ্যমে আপনি URL গুলি আরও পাঠযোগ্য এবং সুনির্দিষ্ট করতে পারবেন।
- কোনো রুটের নাম পরিবর্তন করলে কোডে সেই রুটের ব্যবহার সহজে পরিবর্তন করা যায়।
URL Redirection (Route Redirects)
CherryPy তে আপনি কাস্টম রাউটকে অন্য রাউটে রিডিরেক্টও করতে পারেন। এর মাধ্যমে একটি পাথের জন্য অন্য পাথের URL পাঠানো হয়।
উদাহরণ: Route Redirect
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
raise cherrypy.HTTPRedirect("/home")
@cherrypy.expose
def home(self):
return "এটি হোম পেজ।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, / রুট থেকে /home পাথে রিডিরেক্ট করা হচ্ছে।
Complex Routes and Parameters
আপনি চাইলেই আরো কমপ্লেক্স রাউট তৈরি করতে পারেন, যেখানে পাথের অংশ বিভিন্ন ভেরিয়েবল ধারণ করতে পারে। CherryPy তে প্যারামিটার এবং পাথ ভেরিয়েবলগুলো সহজেই ম্যানিপুলেট করা যায়।
উদাহরণ: Complex Routes
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপ্লিকেশনে!"
@cherrypy.expose
def article(self, article_id, category):
return f"এই আর্টিকেলটি {category} ক্যাটাগরির {article_id} আইডি এর জন্য।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
articleমেথডটি/article/<article_id>/<category>পাথের জন্য কাজ করবে।- উদাহরণস্বরূপ, আপনি http://127.0.0.1:8080/article/123/tech URL দিয়ে "এই আর্টিকেলটি tech ক্যাটাগরির 123 আইডি এর জন্য।" দেখতে পারবেন।
CherryPy তে Custom Routes এবং Named Routes ব্যবহার করে আপনি বিভিন্ন কাস্টম রুট এবং পাথ পরিচালনা করতে পারেন। এটি অ্যাপ্লিকেশনের URL গুলি আরও সুনির্দিষ্ট এবং লজিক্যালভাবে সংগঠিত করার সুযোগ দেয়। আপনি কাস্টম URL প্যাটার্ন, প্যারামিটার এবং রিডিরেকশনও ব্যবহার করে অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং নমনীয় করতে পারবেন।
Read more