2011-02-08 10 views
1

twisted.webに接続のインスタンスを格納する方法は?私はrequest.getSession()を見ましたが、私は検索しました。接続のインスタンスを格納する - twisted.web

ありがとうございました。

更新: 私はたくさんの例がdocumentation of twistedであり、後に

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

ご質問で詳細をお知らせください。達成しようとしていることのコードと現在あなたのために働いていないコードの例を挙げてください。 – karlcow

+0

サンプルコードで更新します。ありがとうございます:) –

答えて

4

取得のためのセッションでLDAP接続を保存したいです。素早い方が好きならsummary on how to use sessions

from twisted.web.resource import Resource 

class ShowSession(Resource): 
    def render_GET(self, request): 
     return 'Your session id is: ' + request.getSession().uid 

class ExpireSession(Resource): 
    def render_GET(self, request): 
     request.getSession().expire() 
     return 'Your session has been expired.' 

resource = ShowSession() 
resource.putChild("expire", ExpireSession()) 

は、それがすでに存在しない場合は、セッションを作成することでrequest.getSession()を忘れないでください。このチュートリアルでは 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

私は理解していません –

+1

@ManuMora、Twisted(Zope)[インターフェースとアダプタ](http://twistedmatrix.com/documents/current/core/howto/components.html)は最初は混乱しますが、一般的に使用されているので、どのように動作するのかを理解すると便利です。ここで永続データをアダプタに保存できるのは、 'Session'サブクラス[Componentized](http://twistedmatrix.com/documents/current/api/twisted.python.components.Componentized.html)です。 –

関連する問題