在 Django 中设置 cookie 时出现内部服务器错误
Internal server error when set cookie in Django
在URL中可以附加参数,例如utm_campaign
在视图中我得到了这个参数:
utm_campaign = request.GET.get('utm_campaign',None)
但是当我想在 cookie 中设置此信息时,我得到 内部服务器错误,没有回溯或其他信息
我正在尝试几种解决方案:
response.set_cookie('utm_campaign',utm_campaign )
response.set_cookie('utm_campaign',utm_campaign .encode('utf-8'))
response.set_cookie('utm_campaign',utm_campaign .encode())
response.set_cookie('utm_campaign',request.GET.get('utm_campaign '))
有什么问题?
问题是,如果我写英文文本或数字 - 一切正常。
如果我尝试写西里尔文本 - 会出现没有详细信息的错误。
- Python3
- CentOs7(默认"utf-8")
- Django 1.11(默认 "utf-8")
解决方案
from urllib import parse
response.set_cookie('utm_campaign', parse.quote(utm_campaign))
在URL中可以附加参数,例如utm_campaign
在视图中我得到了这个参数:
utm_campaign = request.GET.get('utm_campaign',None)
但是当我想在 cookie 中设置此信息时,我得到 内部服务器错误,没有回溯或其他信息
我正在尝试几种解决方案:
response.set_cookie('utm_campaign',utm_campaign )
response.set_cookie('utm_campaign',utm_campaign .encode('utf-8'))
response.set_cookie('utm_campaign',utm_campaign .encode())
response.set_cookie('utm_campaign',request.GET.get('utm_campaign '))
有什么问题?
问题是,如果我写英文文本或数字 - 一切正常。 如果我尝试写西里尔文本 - 会出现没有详细信息的错误。
- Python3
- CentOs7(默认"utf-8")
- Django 1.11(默认 "utf-8")
解决方案
from urllib import parse
response.set_cookie('utm_campaign', parse.quote(utm_campaign))