CherryPy ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে Form Data Persistency এবং Session Management ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ। এগুলো ব্যবহারকারীর তথ্য সংরক্ষণ এবং অ্যাপ্লিকেশনের মধ্যে একটি ধারাবাহিক যোগাযোগ বজায় রাখার জন্য প্রয়োজনীয়। CherryPy এ ফর্ম ডেটা এবং সেশন ম্যানেজমেন্ট খুবই সহজ এবং কার্যকরভাবে ব্যবহৃত হয়। এখানে CherryPy তে ফর্ম ডেটা প্রিজারভেশন (Persistency) এবং সেশন ব্যবস্থাপনা (Session Management) সম্পর্কে বিস্তারিত আলোচনা করা হলো।
CherryPy তে Form Data Persistency
ফর্ম ডেটা প্রিজারভেশন হল ব্যবহারকারীর ইনপুট তথ্য সাময়িকভাবে সঠিকভাবে সংরক্ষণ করার প্রক্রিয়া। CherryPy ফর্ম ডেটা প্রিজার্ভ করতে cherrypy.request অবজেক্টের মাধ্যমে ফর্ম ডেটা অ্যাক্সেস করতে সাহায্য করে।
CherryPy তে ফর্ম ডেটা গ্রহণ এবং প্রক্রিয়া:
ফর্ম ডেটা পাঠানোর জন্য HTML ফর্ম তৈরি করতে হবে। তারপর CherryPy এর cherrypy.request.params ব্যবহার করে সেই ডেটা গ্রহণ করা যায়।
উদাহরণ: ফর্ম ডেটা গ্রহণ
HTML ফর্ম (index.html):
<!DOCTYPE html>
<html>
<head><title>ফর্ম ডেটা</title></head>
<body>
<h1>ব্যবহারকারী ইনপুট</h1>
<form method="POST" action="/submit">
নাম: <input type="text" name="username" required><br><br>
ইমেইল: <input type="email" name="email" required><br><br>
<input type="submit" value="জমা দিন">
</form>
</body>
</html>
CherryPy অ্যাপ (app.py):
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
with open("index.html", "r") as f:
return f.read()
@cherrypy.expose
def submit(self, username, email):
return f"আপনার নাম: {username}, ইমেইল: {email}"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
কোড ব্যাখ্যা:
indexমেথড: ফর্মের HTML পেজ প্রদান করে।submitমেথড: ফর্ম ডেটা POST হয়ে আসলে CherryPy তা গ্রহণ করে এবং ইউজারের ইনপুট প্রদর্শন করে।
এখন, যদি আপনি http://localhost:8080 এ গিয়ে ফর্মটি পূর্ণ করেন এবং জমা দেন, আপনি আপনার ইনপুট ডেটা রিটার্ন হিসেবে দেখতে পাবেন।
CherryPy তে Session Management
Session Management হল ব্যবহারকারীর ইনপুট এবং অ্যাপ্লিকেশনের মধ্যে ধারাবাহিক যোগাযোগ বজায় রাখার প্রক্রিয়া। CherryPy সেশন ম্যানেজমেন্টের জন্য নিজস্ব সেশন টুল সরবরাহ করে, যা HTTP কুকি ব্যবহার করে সেশন সংরক্ষণ করে। এটি সাধারণত লগইন সিস্টেম, ইউজার প্রেফারেন্স সংরক্ষণ ইত্যাদিতে ব্যবহৃত হয়।
CherryPy তে সেশন ব্যবহারের জন্য সেশন টুল ব্যবহার:
CherryPy তে সেশন ব্যবহারের জন্য tools.sessions সক্রিয় করতে হয়।
উদাহরণ: সেশন ব্যবস্থাপনা
import cherrypy
class MyApp:
@cherrypy.expose
def index(self):
return '''
<html>
<head><title>CherryPy সেশন</title></head>
<body>
<h1>ব্যবহারকারী সেশন</h1>
<form method="POST" action="/set_session">
আপনার নাম: <input type="text" name="username" required><br><br>
<input type="submit" value="সেট সেশন">
</form>
</body>
</html>
'''
@cherrypy.expose
def set_session(self, username):
cherrypy.session['username'] = username
return f"আপনার নাম সেশন এ সংরক্ষিত: {username}"
@cherrypy.expose
def get_session(self):
username = cherrypy.session.get('username', 'অজ্ঞাত')
return f"সেশন থেকে আপনার নাম: {username}"
if __name__ == '__main__':
cherrypy.config.update({'tools.sessions.on': True, 'tools.sessions.timeout': 60})
cherrypy.quickstart(MyApp())
কোড ব্যাখ্যা:
tools.sessions.on: সেশন চালু করা হয়।tools.sessions.timeout: সেশনের টাইমআউট সেট করা হয় (এখানে 60 সেকেন্ড)।cherrypy.session['username']: সেশনে ইউজারের নাম সংরক্ষণ করা হয়।cherrypy.session.get(): সেশন থেকে তথ্য পুনরুদ্ধার করা হয়।
এখন, যখন আপনি http://localhost:8080 এ গিয়ে নাম ইনপুট করবেন এবং সেট সেশন বাটনে ক্লিক করবেন, এটি সেশন এ আপনার নাম সংরক্ষণ করবে। পরবর্তী সময়ে /get_session URL এ গিয়ে আপনি আপনার সেশন ডেটা দেখতে পারবেন।
ফর্ম ডেটা এবং সেশন সম্পর্ক
একটি অ্যাপ্লিকেশনে ফর্ম ডেটা এবং সেশন একসাথে ব্যবহার করে ব্যবহারকারীর তথ্য সঠিকভাবে পরিচালনা করা যায়। যেমন, লগইন প্রক্রিয়া বা ইউজার প্রেফারেন্স সংরক্ষণ।
উদাহরণ: লগইন সিস্টেম
import cherrypy
class LoginApp:
@cherrypy.expose
def index(self):
if 'username' in cherrypy.session:
return f"স্বাগতম, {cherrypy.session['username']}!"
else:
return '''
<html>
<head><title>লগইন</title></head>
<body>
<form method="POST" action="/login">
ইউজারনেম: <input type="text" name="username" required><br><br>
পাসওয়ার্ড: <input type="password" name="password" required><br><br>
<input type="submit" value="লগইন">
</form>
</body>
</html>
'''
@cherrypy.expose
def login(self, username, password):
# সাধারণত পাসওয়ার্ড যাচাইয়ের জন্য ডাটাবেস ব্যবহার করা হয়
if username == 'admin' and password == 'password':
cherrypy.session['username'] = username
return f"স্বাগতম, {username}!"
else:
return "অবৈধ ইউজারনেম বা পাসওয়ার্ড।"
if __name__ == '__main__':
cherrypy.config.update({'tools.sessions.on': True})
cherrypy.quickstart(LoginApp())
এখানে:
/indexরুটে ইউজারনেম এবং পাসওয়ার্ড ইনপুট ফর্ম প্রদর্শন করা হয়।/loginরুটে ইউজারনেম এবং পাসওয়ার্ড যাচাই করা হয় এবং সফল হলে সেশন এ ইউজারনেম সংরক্ষণ করা হয়।
CherryPy তে ফর্ম ডেটা প্রিজারভেশন এবং সেশন ম্যানেজমেন্ট খুবই সহজ এবং কার্যকরী। CherryPy এর সেশন টুল এবং ফর্ম ডেটা পরিচালনা ব্যবস্থা আপনার অ্যাপ্লিকেশনের মধ্যে ব্যবহারকারী তথ্য ধারাবাহিকভাবে এবং নিরাপদে সংরক্ষণ করতে সাহায্য করে। এগুলোর মাধ্যমে আপনি লগইন, ইউজার প্রেফারেন্স, কাস্টম সেটিংস ইত্যাদি সহজেই পরিচালনা করতে পারেন।
Read more