1

すべてのページで結果が必要なため、データベース クエリを Cookie に保存しようとしています。有効期限をコードにハードコーディングするとすべて正常に動作しますが、ハードコードされた日付を動的な「翌日」の有効期限に置き換えると、次のエラーが発生します。

self.response.headers.add_header(str('Set-Cookie'), str('shops=%s; path=/; expires=%s') % shoplist expire_string)
                                                                                                               ^
SyntaxError: invalid syntax

response.set_cookie メソッドも使用しようとしましたが、これはまったく機能しませんでした。そのため、以下のコードを使用することにしました。

class CookieHandler(webapp2.RequestHandler):
    def get(self):
        shoplist = Shop.all().filter('active = ', True).order('abbrev')
        expire_date = datetime.datetime.now() + datetime.timedelta(days=1)
        expire_string = expire_date.strftime('%a, %d %b %Y %H:%M:%S GMT')
        self.response.headers.add_header(str('Set-Cookie'), str('shops=%s; path=/; expires=%s') % shoplist expire_string)

更新 内容についての詳細情報を提供するには、データベース内のすべてのショップ名のクエリです。クエリは、すべてのページに表示される検索ボックスのオートコンプリート機能に使用されます。

4

1 に答える 1

2

「%」演算子が右側にタプルを期待しているため、構文エラーが発生しているため、コード行は次のようになります。

self.response.headers.add_header(str('Set-Cookie'), str('shops=%s; path=/; expires=%s') % (shoplist, expire_string))

余分な括弧とコンマに注意してください。

于 2013-02-24T15:10:03.993 に答える