TurboGears এবং URL Mapping
TurboGears হল একটি Python ওয়েব ফ্রেমওয়ার্ক যা দ্রুত ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। এটি MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে, যেখানে Controller ব্যবহারকারীর ইনপুট গ্রহণ করে এবং উপযুক্ত Model বা View এর সাথে যোগাযোগ করে।
URL Mapping হল একটি গুরুত্বপূর্ণ কনসেপ্ট, যা URL রিকোয়েস্ট এবং সেই রিকোয়েস্টের জন্য প্রাসঙ্গিক কোডের মধ্যে সম্পর্ক তৈরি করে। TurboGears-এ, URL Mapping এর মাধ্যমে আপনি ওয়েব অ্যাপ্লিকেশনের রাউটিং কনফিগারেশন করতে পারেন, যাতে বিভিন্ন ইউআরএল রিকোয়েস্টের জন্য উপযুক্ত Controller Action নির্ধারণ করা হয়।
URL Mapping এর মাধ্যমে Controller Action নির্ধারণ
TurboGears-এ, URL Mapping সাধারণত @expose ডেকোরেটর দ্বারা পরিচালিত হয়। এই ডেকোরেটরটি URL রিকোয়েস্টের জন্য একটি নির্দিষ্ট Controller Action ম্যাপ করে।
Controller Actions এবং URL Mapping
Controller Actions হল সেই মেথড বা ফাংশনগুলো যা ওয়েব রিকোয়েস্টের প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। TurboGears-এ, URL রিকোয়েস্ট এবং Controller Actions এর মধ্যে সম্পর্ক URL Mapping এর মাধ্যমে নির্ধারণ করা হয়।
TurboGears এ Controller Action তৈরি করা
একটি সহজ উদাহরণ দেখুন যেখানে একটি MyController তৈরি করা হচ্ছে এবং এর মধ্যে একটি hello_world action তৈরি করা হচ্ছে।
from tg import expose
from tg.controllers import Controller
class MyController(Controller):
@expose('json')
def hello_world(self):
return {"message": "Hello, World!"}
এখানে, @expose('json') ডেকোরেটরটি hello_world মেথডকে URL রিকোয়েস্টের জন্য প্রকাশ করছে এবং এটি JSON আউটপুট ফেরত দিচ্ছে।
URL Mapping কনফিগারেশন
TurboGears-এ URL Mapping সাধারণত config/routes.py ফাইলের মাধ্যমে কনফিগার করা হয়। এখানে আপনি ওয়েব রিকোয়েস্টের জন্য বিভিন্ন রাউট ম্যানেজ করতে পারেন।
from myapp.controllers import MyController
from tg.configuration import AppConfig
from tg import expose
# URL মেপিং কনফিগারেশন
config = AppConfig()
config.add_route('hello_world', '/hello') # URL মেপিং
class RootController:
hello = MyController() # MyController কে রুটে মাউন্ট করা হচ্ছে
এখানে, /hello URL রিকোয়েস্টটি MyController এর hello_world action-এর সাথে সম্পর্কিত। অর্থাৎ, /hello URL এ রিকোয়েস্ট আসলে তা hello_world action-এ চলে যাবে।
TurboGears Controller Actions এর বিভিন্ন প্রকার
TurboGears-এ বিভিন্ন ধরনের Controller Actions তৈরি করা যায়, এবং এগুলির মধ্যে কিছু প্রধান প্রকার হল:
- Standard Actions: সাধারণভাবে ইউআরএল রিকোয়েস্ট থেকে কোনো রেসপন্স প্রদান করা। যেমন,
GETরিকোয়েস্টের জন্য একটি HTML বা JSON রেসপন্স ফেরত দেওয়া। - Form Handling Actions: ইউজার ইনপুট গ্রহণ এবং প্রসেস করার জন্য ফর্ম হ্যান্ডলিং করা।
- Redirect Actions: কোনো অ্যাকশন সম্পন্ন হওয়ার পর ইউজারকে অন্য URL এ রিডিরেক্ট করা।
উদাহরণ: Form Handling Action
from tg import expose, redirect
from tg.controllers import Controller
class MyController(Controller):
@expose('json')
def form_action(self, name=None):
if name:
return {"message": f"Hello, {name}"}
return {"message": "Please provide your name!"}
এখানে, form_action একটি ফর্ম গ্রহণ করে এবং তার উপর ভিত্তি করে একটি JSON রেসপন্স প্রদান করছে।
উদাহরণ: Redirect Action
from tg import expose, redirect
from tg.controllers import Controller
class MyController(Controller):
@expose()
def index(self):
redirect('/hello')
এখানে, index action টি ইউজারকে /hello URL এ রিডিরেক্ট করছে।
Controller Action এর অন্যান্য কার্যকারিতা
- Parameters Handling: Controller actions URL থেকে প্যারামিটার গ্রহণ করতে পারে এবং সেগুলি প্রক্রিয়া করতে পারে।
- Template Rendering: TurboGears টেমপ্লেট রেন্ডারিং সিস্টেম ব্যবহার করে। আপনি HTML বা অন্যান্য টেমপ্লেট ফেরত দিতে পারেন।
- RESTful Actions: আপনি HTTP মেথড (GET, POST, PUT, DELETE) অনুযায়ী বিভিন্ন actions তৈরি করতে পারেন।
সারাংশ
TurboGears একটি শক্তিশালী Python ওয়েব ফ্রেমওয়ার্ক যা MVC আর্কিটেকচার অনুসরণ করে। URL Mapping এর মাধ্যমে আপনি ওয়েব রিকোয়েস্ট এবং Controller Actions এর মধ্যে সম্পর্ক তৈরি করতে পারেন। TurboGears-এ, @expose ডেকোরেটর ব্যবহার করে Controller Actions প্রকাশ করা হয় এবং রাউট ফাইলের মাধ্যমে URL রিকোয়েস্টের সাথে এগুলো মেপ করা হয়। এর মাধ্যমে ওয়েব অ্যাপ্লিকেশন পরিচালনা সহজ এবং স্বচ্ছভাবে করা সম্ভব।
Read more