使用会话插件挂钩?

时间:2016-02-04 12:58:10

标签: bottle

如何在瓶子里使用钩子?

https://pypi.python.org/pypi/bottle-session/0.4

我正在尝试使用瓶钩实现会话插件。

    @bottle.route('/loginpage')
    def loginpage():
  return '''
    <form action="/login" method="post">
        Username: <input name="username" type="text" />
        Password: <input name="password" type="password" />
        <input value="Login" type="submit" />
    </form>
'''

@bottle.route('/login', method='POST')
def do_login(session, rdb):
    username = request.forms.get('username')
    password = request.forms.get('password')
    session['name'] = username
    return session['name']


@bottle.route('/usernot')
def nextPage(session):
return session['name']

以下是我的钩子:

@hook('before_request')
def setup_request():
try:
    request.session = session['name']
    request.session.cookie_expires = False
    response.set_cookie(session['name'], "true")
    #request.session.save()
except Exception, e:
    print ('setup_request--> ', e)

我无法在钩子中访问会话,是否可以将会话作为参数传递给hook?

2 个答案:

答案 0 :(得分:0)

您可以使用

request.get_cookie("bottle.session") #if you haven't changed the default cookie name ...

答案 1 :(得分:0)

如果你使用会话烧杯,那就是瓶子食谱中提到和描述的那个:

http://bottlepy.org/docs/dev/recipes.html

您可以像下面这样以钩子方式访问会话:

http_session = bottle.request.environ.get('beaker.session')

它运作顺畅。你有没有考虑改变它?