CherryPy-তে Request Object এবং Query Parameters ওয়েব অ্যাপ্লিকেশনের ইনপুট গ্রহণ এবং প্রসেসিংয়ের জন্য গুরুত্বপূর্ণ ফিচার। Request Object হলো একটি গুরুত্বপূর্ণ অবজেক্ট, যা প্রতিটি HTTP রিকোয়েস্টের সাথে সম্পর্কিত ডেটা ধারণ করে এবং Query Parameters হলো URL-এর অংশ, যা ক্লায়েন্ট থেকে সার্ভারে ডেটা পাঠানোর জন্য ব্যবহার হয়।
CherryPy Request Object
CherryPy-তে cherrypy.request অবজেক্টটি HTTP রিকোয়েস্ট সম্পর্কিত সকল তথ্য ধারণ করে। এই অবজেক্টের মাধ্যমে আপনি রিকোয়েস্টের HTTP মেথড, ইউআরএল, কুকি, হেডার, কনটেন্ট টাইপ এবং অন্যান্য ইনপুট ডেটা অ্যাক্সেস করতে পারেন।
প্রধান বৈশিষ্ট্যসমূহ:
request.method: রিকোয়েস্টের HTTP মেথড (GET, POST, PUT, DELETE, ইত্যাদি)।request.path: রিকোয়েস্টের পাথ বা URL।request.query_string: URL থেকে পাঠানো Query String।request.params: POST ডেটা এবং URL প্যারামিটারদের অ্যাক্সেস।request.headers: রিকোয়েস্ট হেডার।request.cookies: কুকি ডেটা।
Request Object উদাহরণ
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
# HTTP মেথড চেক
method = cherrypy.request.method
# Query String এবং Parameters দেখুন
query_string = cherrypy.request.query_string
params = cherrypy.request.params
# হেডার এবং কুকি চেক
headers = cherrypy.request.headers
cookies = cherrypy.request.cookies
return f"Method: {method}, Query: {query_string}, Params: {params}, Headers: {headers}, Cookies: {cookies}"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, cherrypy.request ব্যবহার করে রিকোয়েস্ট সম্পর্কিত সমস্ত তথ্য পাওয়া যাচ্ছে।
Query Parameters
Query Parameters হলো URL-এর অংশ, যা ? চিহ্ন দিয়ে শুরু হয় এবং একাধিক কীগুলোর মান (key-value pairs) হিসেবে থাকে। উদাহরণস্বরূপ, একটি URL হতে পারে:
http://localhost:8080/?name=John&age=30
এখানে, name এবং age হল Query Parameters, এবং তাদের মান যথাক্রমে John এবং 30।
Query Parameters পাওয়ার উদাহরণ
CherryPy-তে Query Parameters পাওয়ার জন্য cherrypy.request.params ব্যবহার করা হয়, যা একটি ডিকশনারি (dictionary) হিসেবে কাজ করে এবং URL থেকে পাঠানো সব প্যারামিটার ধারণ করে।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self, name="Unknown", age="Unknown"):
return f"Name: {name}, Age: {age}"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, name এবং age Query Parameters হিসেবে ব্যবহার করা হয়েছে। আপনি ব্রাউজারে গিয়ে এই URLটি ব্যবহার করতে পারেন:
http://localhost:8080/?name=John&age=30
এই রিকোয়েস্টে, name এবং age প্যারামিটারগুলোর মান CherryPy এর মাধ্যমে স্বয়ংক্রিয়ভাবে মেথডে পাস করা হবে এবং আউটপুট হবে:
Name: John, Age: 30
Query String অ্যাক্সেস করা
CherryPy-তে Query String অ্যাক্সেস করতে আপনি cherrypy.request.query_string ব্যবহার করতে পারেন, যা URL থেকে আসা সমস্ত প্যারামিটারকে একটি স্ট্রিং আকারে ফেরত দেয়।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
query_string = cherrypy.request.query_string
return f"Query String: {query_string}"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, যদি আপনি URLটি এইভাবে ব্যবহার করেন:
http://localhost:8080/?name=John&age=30
তাহলে আউটপুট হবে:
Query String: name=John&age=30
POST ডেটা (Form Data) গ্রহণ
CherryPy-তে POST রিকোয়েস্টের মাধ্যমে পাঠানো ডেটা পাওয়ার জন্য cherrypy.request.params ব্যবহার করা হয়। এটি সাধারণত ফর্ম সাবমিট করার সময় ব্যবহৃত হয়।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<form method="post" action="/submit">
Name: <input type="text" name="name" /><br>
Age: <input type="text" name="age" /><br>
<input type="submit" value="Submit" />
</form>
'''
@cherrypy.expose
def submit(self, name, age):
return f"Name: {name}, Age: {age}"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, /submit পাথে ফর্মের মাধ্যমে পাঠানো name এবং age প্যারামিটারগুলো পাওয়ার জন্য submit মেথড ব্যবহার করা হয়েছে।
CherryPy-তে Request Object এবং Query Parameters ব্যবহার করে আপনি HTTP রিকোয়েস্ট সম্পর্কিত সব ধরনের ইনপুট ডেটা খুব সহজে অ্যাক্সেস এবং প্রসেস করতে পারেন। cherrypy.request অবজেক্টটি ওয়েব অ্যাপ্লিকেশনের বিভিন্ন অংশের জন্য প্রয়োজনীয় ডেটা ধারণ করে, এবং Query Parameters ব্যবহার করে আপনি URL থেকে ডাইনামিক ডেটা গ্রহণ করতে পারেন। CherryPy-তে এই দুটি বৈশিষ্ট্য অ্যাপ্লিকেশন ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more