2011-02-08 1 views
1

Comment stocker une instance d'une connexion dans twisted.web? J'ai vu request.getSession() mais j'ai cherché et il y a très peu d'exemples de la façon dont il est stocké et récupéré plus tard.Stocker une instance d'une connexion - twisted.web

Merci.

Mise à jour: Je veux stocker la connexion ldap dans une session pour récupérer plus tard

def render_POST(self, request): 

    command = request.path[1:] 
    session = request.getSession() 

    if command == "authentication": 
     Connect = LdapConnection(request.args['host'][0],request.args['user'][0],request.args['password'][0]) 
     session.addComponent(LdapConnection, Connect)     

    if command == "users": 
     Connect = session.getComponent(LdapConnection)      
     u = Users(Connect, request.args['name'][0],request.args['employeeNumber']) 

    return 
+0

pourriez-vous donner plus de détails dans votre question? donner un exemple de code de ce que vous essayez d'accomplir et de ce qui ne fonctionne pas actuellement pour vous? – karlcow

+0

Je mets à jour avec un exemple de code. Merci beaucoup :) –

Répondre

4

Il y a beaucoup d'exemples dans le documentation of twisted. Si vous préférez un summary on how to use sessions rapide. N'oubliez pas que request.getsession() va créer la session si elle n'existe pas déjà. Ce tutoriel explique how to store objects in session.

cache() 

from zope.interface import Interface, Attribute, implements 
from twisted.python.components import registerAdapter 
from twisted.web.server import Session 
from twisted.web.resource import Resource 

class ICounter(Interface): 
    value = Attribute("An int value which counts up once per page view.") 

class Counter(object): 
    implements(ICounter) 
    def __init__(self, session): 
     self.value = 0 

registerAdapter(Counter, Session, ICounter) 

class CounterResource(Resource): 
    def render_GET(self, request): 
     session = request.getSession() 
     counter = ICounter(session) 
     counter.value += 1 
     return "Visit #%d for you!" % (counter.value,) 

resource = CounterResource() 
+2

Je ne comprends pas –

+1

@ManuMora, Twisted (Zope) [Interfaces & Adaptateurs] (http://twistedmatrix.com/documents/current/core/howto/components.html) sont déroutants au début, mais sont en usage commun, il est donc utile d'avoir une compréhension de leur fonctionnement. La raison pour laquelle vous pouvez stocker des données persistantes dans l'adaptateur est ici que les sous-classes 'Session' [Componentized] (http://twistedmatrix.com/documents/current/api/twisted.python.components.Componentized.html) –

Questions connexes