WSGI:Cookie只能在** start_response **之后调用?

时间:2014-09-10 20:19:29

标签: mod-wsgi wsgi

我不能在以下之后立即拨打cookie:

 def application(environ, start_response):
像这样:

import Cookie
co = Cookie.SimpleCookie()

def application(environ, start_response):
co.load(environ['HTTP_COOKIE'])

start_response('200 OK', ('Content-Type', 'text/html'))

因为虽然这有效..但必须已经设置了cookie才能工作。

如果cookie不存在......脚本将失败。

唯一的解决方案似乎是..

将其置于" start_response()"

if 'HTTP_COOKIE' in environ:
    co.load(environ['HTTP_COOKIE'])

a = co.get('a') and co['a'].value
换句话说,

import Cookie
co = Cookie.SimpleCookie()

def application(environ, start_response):

    start_response('200 OK', ('Content-Type', 'text/html'))

    if 'HTTP_COOKIE' in environ:
        co.load(environ['HTTP_COOKIE'])

    a = co.get('a') and co['a'].value

    yield str(a)

但这种方法并不奇怪,因为我们要求的是

 environ

然而它必须是UNDER

start_response()

为了获得cookie。

0 个答案:

没有答案