【问题标题】:Setting a cookie in flask在烧瓶中设置 cookie
【发布时间】:2012-07-31 04:24:31
【问题描述】:

我正在尝试在烧瓶中创建一个 cookie。手册中的部分示例是:

resp = make_response(render_template(...))
resp.set_cookie(’username’, ’the username’)

所以我将它实现为:

resp = render_template('show_entries.html', AO_sInteger = session.get('AO_sInteger'))
resp.set_cookie('AO_sInteger', AO_sInteger)

然后系统返回此错误:

File "...\Flaskr101.py", line 19, in add_entry
resp.set_cookie('AO_sInteger', AO_sInteger)
AttributeError: 'unicode' object has no attribute 'set_cookie'

我该如何解决这个问题?

【问题讨论】:

  • 这里的resp不是响应对象

标签: python cookies flask


【解决方案1】:

手册中resp是:

resp = make_response(render_template(...))

在你的代码中是:

resp = render_template('show_entries.html', 
                        AO_sInteger = session.get('AO_sInteger'))

使用make_response使其成为正确的响应对象:

from flask import make_response
resp = make_response(render_template('show_entries.html',
                                      AO_sInteger = session.get('AO_sInteger')))

【讨论】:

  • rented_template 返回一个 Unicode 字符串。 Cookie 设置在 Response 对象上,而不是字符串。只有在您制作了该对象(如上所示)后,您才能调用其set_cookie 方法。或者,直接实例化flask.Response 类。
猜你喜欢
  • 1970-01-01
  • 2019-07-29
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多