CherryPy একটি শক্তিশালী পাইথন ভিত্তিক ওয়েব ফ্রেমওয়ার্ক, যা ডেভেলপারদের জন্য ওয়েব অ্যাপ্লিকেশন তৈরি করা সহজ করে। CherryPy তে মডিউল, ক্লাস এবং ফাংশন ব্যবহারের মাধ্যমে আপনি অ্যাপ্লিকেশনটির কাঠামো গড়ে তুলতে পারেন। CherryPy মূলত ক্লাস ভিত্তিক ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর ধারণা ব্যবহার করে, যার ফলে এটি কোডকে সহজে মডুলার এবং রিইউজেবল করে তোলে।
CherryPy তে মডিউল, ক্লাস এবং ফাংশন এর ভূমিকা
- মডিউল: একটি পাইথন স্ক্রিপ্ট বা লাইব্রেরি, যা ওয়েব অ্যাপ্লিকেশনের বিভিন্ন ফিচার বা ফাংশন প্রদান করে।
- ক্লাস: CherryPy অ্যাপ্লিকেশন তৈরিতে প্রধান ভূমিকা পালন করে, কারণ এটি রিকোয়েস্ট হ্যান্ডলিং এবং URI এক্সপোজ করতে ব্যবহৃত হয়।
- ফাংশন: ওয়েব রিকোয়েস্ট প্রক্রিয়ার জন্য ব্যবহৃত বিশেষ কার্যকারিতা, যা সাধারণত ক্লাসের মেথড হিসেবে কাজ করে।
CherryPy তে মডিউল ব্যবহার
CherryPy অ্যাপ্লিকেশনের মডিউল দ্বারা বিভিন্ন কার্যাবলি বা ফিচারগুলি একসাথে সংরক্ষণ করা হয়। যেমন, ডাটাবেস কনফিগারেশন, ইউটিলিটি ফাংশন ইত্যাদি।
উদাহরণ:
database.pyমডিউল:
# database.py
def connect():
print("ডাটাবেসে সংযোগ স্থাপন করা হয়েছে")
def fetch_data():
return {"name": "CherryPy User", "role": "Developer"}
- অ্যাপ্লিকেশনে মডিউল ব্যবহার:
import cherrypy
from database import connect, fetch_data # মডিউল ইমপোর্ট
class MyApp:
@cherrypy.expose
def index(self):
connect() # ডাটাবেসে সংযোগ
data = fetch_data() # ডাটাবেস থেকে ডাটা নিয়ে আসা
return f"স্বাগতম, {data['name']}! আপনি একজন {data['role']}।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
CherryPy তে ক্লাস ব্যবহার
CherryPy তে ক্লাসের মাধ্যমে ওয়েব পেজগুলো বা রিকোয়েস্ট হ্যান্ডলিং নিয়ন্ত্রণ করা হয়। ক্লাসে ডিফাইন করা মেথডগুলো @cherrypy.expose ডেকোরেটরের মাধ্যমে ওয়েব রিকোয়েস্টের সাথে যুক্ত করা হয়।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "এই হল রুট পেজ!"
@cherrypy.expose
def about(self):
return "এই হল অ্যাবাউট পেজ!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে index এবং about মেথড দুটি @cherrypy.expose ডেকোরেটরের মাধ্যমে URI রুটের সাথে যুক্ত করা হয়েছে।
CherryPy তে ফাংশন ব্যবহার
CherryPy তে ফাংশনগুলো সাধারণত ক্লাসের মেথড হিসেবে কাজ করে, যা ওয়েব রিকোয়েস্ট হ্যান্ডলিং করতে ব্যবহৃত হয়। ফাংশনগুলো URL পাথের মাধ্যমে এক্সপোজ করা হয়, এবং ফাংশনগুলো @cherrypy.expose ডেকোরেটরের মাধ্যমে URI পাথের সাথে যুক্ত থাকে।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "স্বাগতম CherryPy অ্যাপে!"
@cherrypy.expose
def greet(self, name="Guest"):
return f"হ্যালো, {name}!"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে greet ফাংশনটি একটি প্যারামিটার name গ্রহণ করে এবং URL পাথ থেকে ডাইনামিক ভ্যালু হিসেবে নামটি গ্রহণ করে। উদাহরণস্বরূপ, http://localhost:8080/greet/John পেজে "হ্যালো, John!" বার্তা দেখাবে।
CherryPy তে URL পাথ এবং ফাংশন এক্সপোজ করা
CherryPy তে আপনি ফাংশনগুলো বা ক্লাসের মেথডগুলো URL পাথের সাথে এক্সপোজ করতে পারেন। এর মাধ্যমে আপনি বিভিন্ন ওয়েব পেজের জন্য নির্দিষ্ট কার্যকলাপ চালাতে পারবেন।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "এটি হল রুট পেজ।"
@cherrypy.expose
def profile(self, user_id):
return f"ব্যবহারকারী আইডি: {user_id}"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে /profile পাথের মাধ্যমে user_id প্যারামিটার পাঠিয়ে ব্যবহারকারীর প্রোফাইল দেখানো হবে। উদাহরণস্বরূপ: **http://localhost:8080/profile/12345**।
CherryPy তে মডিউল, ক্লাস এবং ফাংশন ব্যবহারের মাধ্যমে আপনি ওয়েব অ্যাপ্লিকেশনটি সুশৃঙ্খল এবং মডুলারভাবে তৈরি করতে পারেন।
- মডিউল ব্যবহার করে বিভিন্ন কাজ আলাদা করে রাখা যায়।
- ক্লাস দিয়ে ওয়েব পেজের রিকোয়েস্ট এবং ইউআরআই এক্সপোজ করা যায়।
- ফাংশন দিয়ে ক্লাসের মেথড হিসেবে ওয়েব রিকোয়েস্ট হ্যান্ডলিং করা হয়।
এভাবে CherryPy তে একটি শক্তিশালী এবং মডুলার ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব।
Read more