尝试在 GAE 中使用 Set-Cookie 添加标头时出现错误
我试图在我的项目中包含外部 python 模块来处理会话。它的名称为gmemsess.py
。它尝试在响应中添加 Set-Cookie 标头,并出现错误:
rh.response.headers.add_header('Set-Cookie','%s=%s; path=/;'%(name,self._sid))
AttributeError: HeaderDict instance has no attribute 'add_header'
我阅读了文档,一切似乎都正常,但它不起作用。为什么会出现这个错误? 另外,我使用 webapp2 来管理子域。可能是因为这个而出了什么问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用的是普通 AppEngine,则
headers.add_header
方法绝对可以工作,但我猜测您正在使用一个框架 - 并且有很多框架,例如 Bottle - 使用自定义替换对于 webob 的 Response 对象。Google 的一点时间显示,至少有一个名为 HeaderDict 的可识别类扩展了 MultiDict,我认为这就是您正在处理的问题。在这种情况下,您应该进入 gmemsess.py 并将该行更改
为
“这应该可以解决您的问题”。
The
headers.add_header
method should absolutely work if you are using stock AppEngine, but I am guessing that you are using a framework -- and there are plenty of them, like Bottle -- that uses a custom replacement for webob's Response object.A little bit of time with Google reveals that there is at least one identifiable class called HeaderDict that extends MultiDict, and I think that is what you are dealing with. In that case, you should to into
gmemsess.py
and change the lineto read
That should fix you right up.
忽略 - 请参阅下面的评论
该模块是为与 App Engine 配合使用而编写的吗? App Engine 使用的响应对象没有
add_header
方法,请参阅 文档。相反,有一个类似字典的对象
headers
,您可以将值分配给它Disregard -- see comments below
Is that module written to work with App Engine? The response objects used by App Engine do not have an
add_header
method, see the docs.Instead, there's a dict-like object
headers
that you can just assign values to like