3

セッションを操作するために、プロジェクトに外部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を使用してサブドメインを管理しています。これが原因で何か問題が発生している可能性がありますか?

4

2 に答える 2

5

ストックAppEngineを使用している場合、このメソッドは絶対に機能するはずですが、 WebobのResponseオブジェクトのheaders.add_headerカスタム置換を使用するフレームワーク(Bottleなど)を使用していると思います。

グーグルとの少しの時間は、MultiDictを拡張するHeaderDictと呼ばれる少なくとも1つの識別可能なクラスがあることを明らかにします、そして私はあなたが扱っているものだと思います。その場合はgmemsess.py、行を変更する必要があります

rh.response.headers.add_header('Set-Cookie','%s=%s; path=/;'%(name,self._sid))

読む

rh.response.headers['Set-Cookie'] = '%s=%s; path=/;'%(name,self._sid)

それはあなたをすぐに修正するはずです。

于 2011-02-25T15:38:11.290 に答える
3

無視-以下のコメントを参照してください

そのモジュールはAppEngineで動作するように作成されていますか?AppEngineで使用されるレスポンスオブジェクトにはメソッドがありません。ドキュメントadd_headerをご覧ください。

headers代わりに、いいねに値を割り当てることができるdictのようなオブジェクトがあります

response.headers['Set-Cookie'] = "whatever your cookie value is"
于 2011-02-25T15:04:33.560 に答える