我正在尝试将数据库查询保存到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)
更新 要提供有关内容的更多信息,它是对数据库中所有商店名称的查询。该查询用于在每个页面上都可见的搜索框上的自动完成功能。
答案 0 :(得分:2)
您的语法错误正在发生,因为“%”运算符需要一个右侧的元组,因此您的代码行应为:
self.response.headers.add_header(str('Set-Cookie'), str('shops=%s; path=/; expires=%s') % (shoplist, expire_string))
请注意额外的括号和逗号。