[2s.mk-friends] Сподели Знаење сабота

Дамјан Георгиевски penguinista at mail.net.mk
Fri Jul 17 14:30:14 UTC 2009


>  - може да го покажам мојот мини-python-web-framework - се вика die-django
> :) - ...

сега се вика RESTzeug[1] ... еве мал tutorial како се користат сесии преку 
користење на Beaker.

Чекорите се лесни:
 - креирај го и подеси го Beaker middleware-от
 - wrap-увај ја RESTzeug апликацијата во middleware-от
 - користи го објектот во req.environ['beaker.session'] како сесиски објект

+Hint, наместо да се користи req.environ['beaker.session'] постојатно, може да 
се override-ува Request класата која ја користи RESTzeug со друга custom 
класа, па сесијата да се пристапува како req.session... еве го целиот пример:


### session.py ###
from restzeug import Request, Response, expose

class MyRequest(Request):
    '''Custom Request class, providing req.session as the Beaker session 
object'''
    @property
    def session(self):
        return self.environ['beaker.session']


@expose("/")
class session:
    def GET(self, req):
        # get the "count" value from the session, 0 if there's no "count"
	# increase by 1
        count = req.session.get('count', 0) + 1
	# save the new value in the session
        req.session['count'] = count
        req.session.save()
        return Response('Hello World! The count is %d\n' % count)

if __name__ == '__main__':
    from werkzeug import run_simple
    from restzeug import RESTzeug

    from beaker.middleware import SessionMiddleware
    # Configure the SessionMiddleware
    session_opts = {
        'session.type': 'file',
        'session.cookie_expires': 300,
        'session.data_dir' : '/tmp'
    }
    
    # create the RESTzeug WSGI application object, override the request class
    app = RESTzeug(request_cls=MyRequest)

    import __main__ # this module
    app.publish(__main__)

    # wrap the RESTzeug WSGI application in a Beaker middleware
    app = SessionMiddleware(app, session_opts)

    # run the application
    run_simple('', 5000, app, use_debugger=True, use_reloader=True)

### EOF ###


Прашања?


[1]
http://damjan.softver.org.mk/git/Vezilka/tree/vezilka/lib/restzeug.py?h=werkzeug
[2]
http://beaker.groovie.org/contents.html


-- 
дамјан ( http://softver.org.mk/damjan/ )

Scarlett Johansson: You always see the glass half-empty.
Woody Allen: No. I see the glass half-full, but of poison.



More information about the Ossm-members mailing list