CherryPy একটি Python-ভিত্তিক ওয়েব ফ্রেমওয়ার্ক যা HTTP Methods (GET, POST, PUT, DELETE) সমর্থন করে। এই HTTP Methods গুলি ওয়েব সার্ভিস বা অ্যাপ্লিকেশনগুলির মধ্যে বিভিন্ন ধরনের রিকোয়েস্ট এবং রেসপন্স পরিচালনা করতে ব্যবহৃত হয়। CherryPy এ এই HTTP Methods ব্যবহার করে আপনি আপনার ওয়েব অ্যাপ্লিকেশনটি ডাইনামিক এবং কার্যকরীভাবে পরিচালনা করতে পারেন।
এই HTTP Methods গুলি সাধারণত ওয়েব অ্যাপ্লিকেশনের বিভিন্ন রিকোয়েস্ট হ্যান্ডলিংয়ের জন্য ব্যবহার করা হয়।
GET Method
GET মেথডটি HTTP রিকোয়েস্টের জন্য সবচেয়ে সাধারণ এবং ব্যবহৃত পদ্ধতি। এটি মূলত ডেটা রিট্রিভ করতে ব্যবহৃত হয় এবং URL-এর মাধ্যমে প্যারামিটার পাস করা হয়। GET মেথডের মাধ্যমে সাধারণত ডেটা সার্ভার থেকে ক্লায়েন্টে পাঠানো হয়, যেমন HTML পেজ, JSON বা অন্য কোনো রেসপন্স।
উদাহরণ: GET Method
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "GET Method Example"
@cherrypy.expose
def greet(self, name="Guest"):
return f"Hello, {name}!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে:
/greet?name=Johnএর মাধ্যমে GET প্যারামিটার পাস করা হবে এবং "Hello, John!" রেসপন্স দেখাবে।
POST Method
POST মেথডটি ডেটা সার্ভারে পাঠাতে ব্যবহৃত হয়। এটি সাধারণত ফর্ম ডেটা, লগইন তথ্য বা অন্যান্য সংবেদনশীল ডেটা পাঠাতে ব্যবহৃত হয়, যা URL-এ দেখা যায় না এবং সার্ভারে সুরক্ষিত থাকে।
উদাহরণ: POST Method
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''<form method="post" action="greet">
Name: <input type="text" name="name"/>
<button type="submit">Submit</button>
</form>'''
@cherrypy.expose
def greet(self, name="Guest"):
return f"Hello, {name}!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, POST মেথড ব্যবহার করে ফর্ম ডেটা সার্ভারে পাঠানো হচ্ছে। যখন আপনি submit করবেন, আপনার name প্যারামিটার POST রিকোয়েস্টের মাধ্যমে সার্ভারে পাঠানো হবে এবং রেসপন্সে "Hello, [name]" দেখাবে।
PUT Method
PUT মেথডটি মূলত সার্ভারে কোনো সম্পদ (resource) আপডেট বা তৈরি করতে ব্যবহৃত হয়। PUT রিকোয়েস্টে ডেটা সার্ভারে আপলোড করা হয় এবং সম্পদটির সম্পূর্ণ তথ্য থাকে।
উদাহরণ: PUT Method
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "PUT Method Example"
@cherrypy.expose
def update(self, name="Guest"):
return f"Data updated for {name}."
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
PUT মেথডের মাধ্যমে আপনি একটি রিসোর্স আপডেট বা তৈরি করতে পারেন। উদাহরণস্বরূপ, আপনি /update?name=John এ PUT রিকোয়েস্ট পাঠাতে পারেন এবং "Data updated for John." এই রেসপন্স পাবেন।
DELETE Method
DELETE মেথডটি কোনো নির্দিষ্ট সম্পদ (resource) মুছে ফেলতে ব্যবহৃত হয়। এটি একটি HTTP রিকোয়েস্ট যেখানে সম্পদের URL দেয়া থাকে এবং এটি ঐ সম্পদটি সার্ভার থেকে মুছে ফেলে।
উদাহরণ: DELETE Method
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "DELETE Method Example"
@cherrypy.expose
def delete(self, name="Guest"):
return f"Resource {name} deleted."
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, DELETE রিকোয়েস্টের মাধ্যমে আপনি /delete?name=John পাথের জন্য একটি সম্পদ মুছে ফেলতে পারেন। এই রিকোয়েস্টটি "Resource John deleted." রেসপন্স দেয়।
CherryPy তে HTTP Methods পরিচালনা
CherryPy তে আপনি একটি একক মেথডের মাধ্যমে HTTP মেথড পরিচালনা করতে পারেন। CherryPy এর @cherrypy.expose ডেকোরেটর ব্যবহার করে আপনি GET, POST, PUT, DELETE মেথডগুলোকে নির্দিষ্টভাবে রাউট করতে পারেন।
উদাহরণ: HTTP Methods এর কাস্টম হ্যান্ডলিং
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "Welcome to CherryPy!"
@cherrypy.expose
def greet(self, name="Guest"):
if cherrypy.request.method == 'POST':
return f"Hello, {name} (POST method)"
else:
return f"Hello, {name} (GET method)"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, greet রুটটি GET এবং POST মেথডের জন্য আলাদা রেসপন্স প্রদান করবে। POST মেথডের জন্য রেসপন্সে "Hello, [name] (POST method)" দেখাবে, আর GET মেথডের জন্য "Hello, [name] (GET method)" দেখাবে।
CherryPy এর জন্য HTTP Methods Configuration
CherryPy তে HTTP Methods কনফিগার করতে আপনি কাস্টম টুলস বা ফিল্টার ব্যবহার করতে পারেন, যা আপনাকে মেথডের আচরণ নিয়ন্ত্রণ করতে সাহায্য করে।
উদাহরণ: কাস্টম টুলের মাধ্যমে HTTP Methods কনফিগারেশন
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "Welcome to CherryPy!"
@cherrypy.expose
def post_data(self, data=""):
if cherrypy.request.method == 'POST':
return f"Data received: {data}"
else:
raise cherrypy.HTTPError(405, "Method Not Allowed")
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে 405 Method Not Allowed ত্রুটি ধরা হবে যদি ক্লায়েন্ট POST রিকোয়েস্ট না পাঠায়।
CherryPy তে HTTP Methods (GET, POST, PUT, DELETE) ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশনের ডেটা রিকোয়েস্ট এবং রেসপন্স ম্যানেজমেন্ট সহজভাবে করতে পারেন। CherryPy এর মাধ্যমে আপনি সহজেই এই মেথডগুলোকে রাউটিং, ডাইনামিক প্যারামিটার প্রক্রিয়াকরণ, এবং কাস্টম রেসপন্স তৈরির জন্য ব্যবহার করতে পারবেন।
Read more