TurboGears - Çerezler ve Oturumlar

Genellikle, bir kullanıcının tarayıcısına eklenmiş basit tarama verilerini tutmak gerekir. Seanslar en yaygın kullanılan tekniktir. Oturum, disk dosyası veya veritabanı gibi daha kalıcı bir biçimde depolanması gerekmeyen verileri temsil eder.

Ancak, TurboGears'taki oturum verileri dosya sistemi, veritabanı veya karma tanımlama bilgisi değerleri ile yedeklenebilir. Çerezlerde küçük bir miktar oturum verisi saklanır, ancak daha büyük hacimli oturum verileri için MemCache kullanılır.

MemCache, sistem düzeyinde bir arka plan programıdır. Önbelleğe alınmış verilere hızlı erişim sağlar ve son derece ölçeklenebilir. Ancak, yalnızca güvenli sunucularda kullanılmak üzere tasarlanmıştır ve bu nedenle sysadmin tarafından bakımı ve güvenliği sağlanmalıdır.

Oturum Yönetiminde Beher

TurboGears, oturum yönetimi için Beaker'ı kullanır. Gearbox tarafından hızlı başlatılan bir proje, varsayılan olarak oturum verilerini depolamak için karma çerezler kullanmak üzere yapılandırılır.

Bir istemci her bağlandığında, oturum ara yazılımı (Beaker), yapılandırma dosyasında tanımlanan çerez adını kullanarak çerezi inceleyecektir. Tanımlama bilgisi bulunmazsa, tarayıcıda ayarlanacaktır. Sonraki tüm ziyaretlerde, ara katman yazılımı çerezi bulacak ve onu kullanacaktır.

Oturum yönetimini etkinleştirmek için, import ifadesi izlenerek oturum sınıfı projeye dahil edilmelidir -

from tg import session

Verileri bir oturum değişkenine kaydetmek için -

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

Oturum değişkenini almak için -

return session[‘key’]

Anahtarlarınızın o oturumda saklanması için oturumu açıkça kaydetmeniz gerektiğini unutmayın.

delete() oturum nesnesinin yöntemi tüm kullanıcı oturumlarını silecek -

session.delete()

Herhangi bir üretim ortamındaki tüm kullanıcı oturumlarını silmek alışılmış bir şey olmasa da, bunu genellikle kullanılabilirlik veya işlevsel testler yapıldıktan sonra temizlemek için yaparsınız.

Aşağıda, oturumları göstermek için basit bir örnek verilmiştir. RootController sınıfında birsetsession() bir oturum değişkenini ayarlayan yöntem.

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>"

Giriş http://localhost:8080/setsession

Tarayıcıdaki bir bağlantı, http://localhost:8080/getsession hangi oturum değişkenini alır ve görüntüler -