CherryPy এর কনফিগারেশন সিস্টেম আপনাকে ওয়েব অ্যাপ্লিকেশনের রুট (root) এবং বিভিন্ন URI পাথের জন্য কাস্টম সেটিংস কনফিগার করতে সহায়তা করে। এটি আপনাকে বিভিন্ন URL রুটের জন্য আলাদা আচরণ নির্ধারণের সুবিধা দেয়। CherryPy এ URI (Uniform Resource Identifier) এবং Root কনফিগারেশন ব্যবহারের মাধ্যমে আপনি ওয়েব সার্ভিসের বিভিন্ন অংশকে কাস্টমাইজ করতে পারেন।
URI এবং Root কনফিগারেশন
CherryPy এ রুট কনফিগারেশন হলো এমন একটি সিস্টেম, যা বিভিন্ন URL পাথের জন্য বিভিন্ন কনফিগারেশন সেটিংস অ্যাপ্লাই করতে সাহায্য করে। রুট কনফিগারেশন মূলত [root] অথবা [uri] সেকশনে রাখা হয়। একটি সাধারণ CherryPy অ্যাপ্লিকেশনে রুট কনফিগারেশন একটি ক্লাসের মাধ্যমে সংজ্ঞায়িত করা হয়, যা বিভিন্ন URI পাথের জন্য বিভিন্ন হ্যান্ডলার নির্ধারণ করে।
Root URI Configuration
CherryPy এ রুট (root) URI বা রুট পাথ হলো সেই পাথ যা সার্ভারের বেস URL হিসেবে কাজ করে। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশন http://localhost:8080/ এ চলতে থাকে, তবে / হলো রুট পাথ।
রুট কনফিগারেশন উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "এটি হল রুট পেজ (Root Page)"
@cherrypy.expose
def about(self):
return "এটি হল অ্যাবাউট পেজ (About Page)"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে index মেথডটি রুট পাথ / এর জন্য এবং about মেথডটি /about পাথের জন্য কাজ করবে।
URI কনফিগারেশন (Route Specific Configuration)
CherryPy তে আপনি নির্দিষ্ট URI পাথের জন্য আলাদা কনফিগারেশন অ্যাপ্লাই করতে পারেন। এটি আপনাকে পাথভিত্তিক আলাদা কাস্টম সেটিংস প্রদান করতে সহায়তা করে, যেমন: লগিং, স্ট্যাটিক ফাইল সার্ভিং, সিকিউরিটি টুলস, এবং আরও অনেক কিছু।
URI কনফিগারেশন উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return "এটি হল রুট পেজ (Root Page)"
@cherrypy.expose
def about(self):
return "এটি হল অ্যাবাউট পেজ (About Page)"
@cherrypy.expose
def contact(self):
return "এটি হল কন্ট্যাক্ট পেজ (Contact Page)"
# কনফিগারেশন
config = {
'/about': {
'tools.sessions.on': True, # সেশন সমর্থন চালু
'tools.staticdir.on': True,
'tools.staticdir.dir': '/path/to/static', # স্ট্যাটিক ফাইল সার্ভিং
},
'/contact': {
'tools.gzip.on': True, # Gzip কম্প্রেশন চালু
}
}
if __name__ == '__main__':
cherrypy.quickstart(MyApp(), '/', config)
এখানে, /about এবং /contact রুটের জন্য আলাদা কনফিগারেশন ব্যবহার করা হয়েছে:
/aboutপাথে সেশন এবং স্ট্যাটিক ফাইল সার্ভিংয়ের কনফিগারেশন।/contactপাথে Gzip কম্প্রেশন চালু করা।
Root পাথের জন্য কনফিগারেশন ফাইল
CherryPy কনফিগারেশন ফাইলের মাধ্যমে রুট এবং URI কনফিগারেশন সেট করা যেতে পারে। এটি সাধারণত .conf বা .ini ফরম্যাটে থাকে।
উদাহরণ: app.conf ফাইল
[global]
server.socket_host = "127.0.0.1"
server.socket_port = 8080
log.access_file = "./logs/access.log"
log.error_file = "./logs/error.log"
engine.autoreload.on = True
[/about]
tools.sessions.on = True
tools.staticdir.on = True
tools.staticdir.dir = "./static"
[/contact]
tools.gzip.on = True
এই কনফিগারেশন ফাইলটি CherryPy অ্যাপ্লিকেশনের জন্য /about এবং /contact পাথের আলাদা কনফিগারেশন নির্ধারণ করে।
Root Configuration with CherryPy
CherryPy তে আপনি রুট কনফিগারেশন বিভিন্নভাবে কাস্টমাইজ করতে পারেন, যেমন:
- Tools Configuration: CherryPy তে বিভিন্ন টুলস (জেভাস্ক্রিপ্ট কম্প্রেশন, সেশন, স্ট্যাটিক ফাইল সার্ভিং) আলাদা আলাদা URI বা রুটের জন্য কনফিগার করা যায়।
- Logging: আপনি রুটের জন্য আলাদা লগিং কনফিগারেশন নির্ধারণ করতে পারেন, যেমন বিভিন্ন রুটের জন্য আলাদা লগ ফাইল সংরক্ষণ।
- Security: CherryPy তে URI ভিত্তিক সিকিউরিটি কনফিগারেশন (HTTPs, Authentication) চালু করা যায়।
CherryPy তে URI এবং Root কনফিগারেশন ব্যবহারের মাধ্যমে আপনি অ্যাপ্লিকেশনের বিভিন্ন পাথ এবং রুটের জন্য কাস্টম সেটিংস ও আচরণ নির্ধারণ করতে পারেন। এটি আপনাকে উন্নত ফিচার এবং সুনির্দিষ্ট কনফিগারেশন সেটআপ করতে সহায়তা করে। CherryPy এর শক্তিশালী কনফিগারেশন সিস্টেম আপনাকে আরও দক্ষভাবে ওয়েব অ্যাপ্লিকেশন পরিচালনা করতে সাহায্য করবে।
Read more