CherryPy তে Session Management হল এমন একটি ফিচার, যার মাধ্যমে ইউজারের ইনপুট এবং ডেটা সাময়িকভাবে সেভ করা যায়। সেশন ব্যবহার করে বিভিন্ন পেজ বা রিকোয়েস্টে ডেটা শেয়ার করা যায়, যাতে একবার লগ ইন করার পর একই ইউজারের তথ্য একাধিক পেজে প্রাপ্ত হয়। সেশন ব্যবস্থাপনা খুবই গুরুত্বপূর্ণ যখন আপনি ইউজারের অবস্থান ট্র্যাক করতে চান, যেমন লগ ইন স্টেটাস, ইউজার পছন্দ বা অন্য কোনো ডেটা।
CherryPy তে সেশন ব্যবস্থাপনা (Session Management)
CherryPy তে সেশন ব্যবস্থাপনা সহজ। সেশন টুলস tools.sessions ব্যবহার করে সক্রিয় করা হয়। সেশন টুলস ডিফল্টভাবে কোডে নির্দিষ্ট সেটিংসের মাধ্যমে ব্যবহার করা যায় এবং সেশন ডেটা সংরক্ষণ করার জন্য বিভিন্ন পদ্ধতি রয়েছে।
CherryPy তে সেশন সক্রিয় করা
সেশন সক্রিয় করার জন্য আপনাকে প্রথমে tools.sessions.on কনফিগারেশনকে True করতে হবে। এর ফলে, CherryPy অ্যাপ্লিকেশন সেশনের জন্য প্রয়োজনীয় কুকি তৈরি করবে এবং সেশন ডেটা সংরক্ষণ করবে।
সেশন সক্রিয় করার উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<html>
<body>
<form method="post" action="/submit">
<label for="name">নাম:</label>
<input type="text" name="name" id="name"><br><br>
<input type="submit" value="জমা দিন">
</form>
</body>
</html>
'''
@cherrypy.expose
def submit(self, name):
cherrypy.session['name'] = name # সেশন ডেটা সংরক্ষণ
return f"আপনার নাম {name} সেশন এ সংরক্ষিত হয়েছে!"
@cherrypy.expose
def show_session(self):
if 'name' in cherrypy.session:
return f"সেশন থেকে নাম: {cherrypy.session['name']}"
return "সেশন থেকে কোনো তথ্য পাওয়া যায়নি।"
if __name__ == '__main__':
cherrypy.config.update({'tools.sessions.on': True}) # সেশন চালু
cherrypy.quickstart(MyApp())
ব্যাখ্যা:
tools.sessions.on = True: এটি সেশন ব্যবস্থাপনা চালু করে।cherrypy.session: সেশন ডেটা সংরক্ষণ এবং অ্যাক্সেস করার জন্য ব্যবহার করা হয়। এখানেnameডেটা সেশন ভেরিয়েবল হিসেবে সংরক্ষণ করা হয়েছে।
সেশন থেকে ডেটা রিড ও ডিলিট করা
CherryPy তে সেশন থেকে ডেটা রিড ও ডিলিট করার সুবিধাও রয়েছে। আপনি সেশন ভেরিয়েবল থেকে ডেটা রিড করতে পারেন এবং সেশন ভেরিয়েবল মুছে ফেলতে পারেন।
উদাহরণ:
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<html>
<body>
<form method="post" action="/submit">
<label for="name">নাম:</label>
<input type="text" name="name" id="name"><br><br>
<input type="submit" value="জমা দিন">
</form>
</body>
</html>
'''
@cherrypy.expose
def submit(self, name):
cherrypy.session['name'] = name # সেশন ডেটা সংরক্ষণ
return f"আপনার নাম {name} সেশন এ সংরক্ষিত হয়েছে!"
@cherrypy.expose
def show_session(self):
if 'name' in cherrypy.session:
return f"সেশন থেকে নাম: {cherrypy.session['name']}"
return "সেশন থেকে কোনো তথ্য পাওয়া যায়নি।"
@cherrypy.expose
def delete_session(self):
if 'name' in cherrypy.session:
del cherrypy.session['name'] # সেশন থেকে ডেটা মুছে ফেলা
return "সেশন ডেটা মুছে ফেলা হয়েছে!"
return "সেশন ডেটা পূর্বে সংরক্ষিত ছিল না।"
if __name__ == '__main__':
cherrypy.config.update({'tools.sessions.on': True}) # সেশন চালু
cherrypy.quickstart(MyApp())
এখানে delete_session মেথডটি সেশন থেকে ডেটা মুছে ফেলে। যখন ব্যবহারকারী এই পৃষ্ঠাটি অ্যাক্সেস করবেন, তখন সেশন থেকে name ডেটা মুছে যাবে।
সেশনের মেয়াদ (Session Expiration)
CherryPy তে সেশনের মেয়াদ কনফিগার করা যায়, যার মাধ্যমে একটি নির্দিষ্ট সময় পর সেশন স্বয়ংক্রিয়ভাবে মুছে যাবে। সেশন মেয়াদ নির্ধারণ করতে tools.sessions.timeout কনফিগারেশন ব্যবহার করা হয়।
উদাহরণ: সেশনের মেয়াদ নির্ধারণ
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<html>
<body>
<form method="post" action="/submit">
<label for="name">নাম:</label>
<input type="text" name="name" id="name"><br><br>
<input type="submit" value="জমা দিন">
</form>
</body>
</html>
'''
@cherrypy.expose
def submit(self, name):
cherrypy.session['name'] = name
return f"আপনার নাম {name} সেশন এ সংরক্ষিত হয়েছে!"
@cherrypy.expose
def show_session(self):
if 'name' in cherrypy.session:
return f"সেশন থেকে নাম: {cherrypy.session['name']}"
return "সেশন থেকে কোনো তথ্য পাওয়া যায়নি।"
if __name__ == '__main__':
cherrypy.config.update({
'tools.sessions.on': True, # সেশন চালু
'tools.sessions.timeout': 60 # সেশনের মেয়াদ ৬০ সেকেন্ড
})
cherrypy.quickstart(MyApp())
এখানে tools.sessions.timeout ৬০ সেকেন্ড নির্ধারণ করা হয়েছে, যার মানে হলো সেশন ৬০ সেকেন্ড পর মুছে যাবে।
সেশন কুকি কনফিগারেশন
CherryPy তে সেশন কুকি কনফিগারেশন করা যায়, যা কুকির বয়স, পাথ এবং সিকিউরিটি সেটিংস নিয়ন্ত্রণ করতে সাহায্য করে। সেশন কুকি কনফিগার করার জন্য tools.sessions.cookie_path, tools.sessions.cookie_domain, এবং tools.sessions.cookie_max_age ব্যবহার করা হয়।
উদাহরণ: সেশন কুকি কনফিগারেশন
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<html>
<body>
<form method="post" action="/submit">
<label for="name">নাম:</label>
<input type="text" name="name" id="name"><br><br>
<input type="submit" value="জমা দিন">
</form>
</body>
</html>
'''
@cherrypy.expose
def submit(self, name):
cherrypy.session['name'] = name
return f"আপনার নাম {name} সেশন এ সংরক্ষিত হয়েছে!"
if __name__ == '__main__':
cherrypy.config.update({
'tools.sessions.on': True,
'tools.sessions.cookie_path': '/', # কুকির পাথ
'tools.sessions.cookie_max_age': 3600, # কুকির ম্যাক্স এজ (১ ঘণ্টা)
'tools.sessions.cookie_domain': '.example.com' # কুকির ডোমেন
})
cherrypy.quickstart(MyApp())
CherryPy তে সেশন ব্যবস্থাপনা সহজ এবং কার্যকরী। tools.sessions.on ব্যবহার করে সেশন চালু করা হয় এবং সেশন থেকে ডেটা সংরক্ষণ, রিড, এবং ডিলিট করা যায়। এছাড়া সেশনের মেয়াদ এবং কুকি কনফিগারেশনও খুব সহজে সেট করা যায়। CherryPy এর সেশন ব্যবস্থাপনা আপনাকে ইউজারের ইনপুট এবং ডেটা সাময়িকভাবে সংরক্ষণ করার সুবিধা দেয়, যা ডায়নামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়ক।
Read more