TurboGears - कुकीज़ और सत्र

अक्सर उपयोगकर्ता के ब्राउज़र से जुड़े सरल ब्राउज़िंग डेटा को रखना आवश्यक होता है। सत्र सबसे अधिक इस्तेमाल की जाने वाली तकनीक है। सत्र डेटा का प्रतिनिधित्व करता है जिसे डिस्क फ़ाइल या डेटाबेस जैसे अधिक लगातार रूप में संग्रहीत करने की आवश्यकता नहीं होती है।

हालाँकि, TurboGears में सेशनडेटा को फाइलसिस्टम, डेटाबेस या हैश कुकी मान द्वारा समर्थित किया जा सकता है। सत्र डेटा की एक छोटी मात्रा को आमतौर पर कुकीज़ में रखा जाता है, लेकिन सत्र डेटा की बड़ी मात्रा के लिए MemCache का उपयोग किया जाता है।

MemCache एक सिस्टम-लेवल डेमॉन है। यह कैश्ड डेटा तक तेजी से पहुंच प्रदान करता है और यह अत्यंत मापनीय है। हालाँकि, यह केवल सुरक्षित सर्वर पर उपयोग के लिए है, और इसलिए इसे sadadmin द्वारा बनाए रखा और सुरक्षित किया जाना चाहिए।

सत्र प्रबंधन में बीकर

TurboGears सत्र प्रबंधन के लिए बीकर का उपयोग करता है। गियरबॉक्स द्वारा त्वरित रूप से शुरू किया गया एक प्रोजेक्ट सत्र डेटा को संग्रहीत करने के लिए हैशेड कुकीज़ का उपयोग करने के लिए डिफ़ॉल्ट रूप से कॉन्फ़िगर किया गया है।

जब भी कोई क्लाइंट कनेक्ट होता है, सत्र मिडलवेयर (बीकर) कुकी नाम का उपयोग करके कुकी का निरीक्षण करेगा, जिसे कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया है। यदि कुकी नहीं मिली है, तो इसे ब्राउज़र में सेट किया जाएगा। बाद की सभी यात्राओं में, मिडिलवेयर कुकी को खोजेगा और उसका उपयोग करेगा।

सत्र प्रबंधन को सक्षम करने के लिए, आयात विवरण का पालन करके सत्र वर्ग को परियोजना में शामिल किया जाना चाहिए -

from tg import session

एक सत्र चर में डेटा को बचाने के लिए -

session[‘key’] = value
session.save()

सत्र चर प्राप्त करने के लिए -

return session[‘key’]

ध्यान दें कि उस सत्र में संग्रहीत की जाने वाली आपकी कुंजियों के लिए आपको सत्र को स्पष्ट रूप से सहेजने की आवश्यकता है।

delete() सत्र ऑब्जेक्ट की विधि सभी उपयोगकर्ता सत्रों को मिटा देगी -

session.delete()

भले ही यह किसी भी दिए गए उत्पादन वातावरण पर सभी उपयोगकर्ता सत्रों को हटाने के लिए प्रथागत नहीं है, फिर भी आप इसे आमतौर पर प्रयोज्य या कार्यात्मक परीक्षणों के बाद सफाई के लिए करेंगे।

नीचे दिए गए सत्रों को प्रदर्शित करने के लिए एक सरल उदाहरण है। RootController वर्ग एक हैsetsession() विधि जो सत्र चर सेट करती है।

from hello.lib.base import BaseController
from tg import expose, session
class RootController(BaseController):
   
   @expose()
   def setsession(self):
      session['user'] = 'MVL'
      session.save()
      
      str = "<b>sessionVariable set to "+session['user'] 
      str = str+"<br><a href = '/getsession'>click here to retrieve</a></b>"
      return str
   
   @expose()
   def getsession(self):
      return "<b>value of session variable retrieved " +session['user'] +"</b>"

दर्ज http://localhost:8080/setsession

ब्राउज़र में एक लिंक की ओर जाता है http://localhost:8080/getsession जो सत्र चर को पुनः प्राप्त और प्रदर्शित करता है -