Django 传中文cookie + jQuery 获取中文cookie
程序员文章站
2022-07-13 13:11:12
...
Django + Jquery 操作cookie + 中文、字符转义cookie问题
最近在做Web socket时用到cookie, 在前后端传中文和符号时会被转义,几经周转, 总算解决了, 在这里简要分享以下其操作和方法。
Cookie机制: 存放少量数据在客户端比如浏览器中,用户认证需用session
。
Django 2.*
pycharm 2019.2 (prefessional)
python 3.7
Javascript + Jquery
一、Django操作cookie
序号 | 代码 | 示例 | 概要 |
---|---|---|---|
1 | request.COOKIES.get(key) | . . . |
根据Key值获取value值 如果加密的话那就是加密的value |
2 | request.COOKIES | . . . |
读所有的cookie |
序号 | 操作 | 示例 | 概要 |
---|---|---|---|
1 |
response = HttpResponse() response.delete_cookie(key) |
. . . |
删除键为key 的cookie必须是HttpResponse的返回对象 才能操作 |
序号 | 操作 | 示例 | 概要 |
---|---|---|---|
1 |
response = HttpResponse() response.set_cookie(key, value) |
. . . |
设置(增加)cookie,key: cookie键;value: cookie值(需要转为字符串)。 必须是HttpResponse的返回对象 才能操作 |
关于其他参数:
set_cookie (key, value=" ", max_age=None, expires=None, path=’/’, domain=None, secure=None, httponly=False)
key:
cookie的namevalue:
cookie的值max_age:
cookie存活时间,单位是秒expires:
具体过期时间path:
cookie的访问路径,只有在某个路径下访问domain:
域名,只有在某个域名下访问secure:
安全httpoly:
如果为True那么js就不能获取cookieset_signed_cookie(key, value, salt=’’, max_age=None, expires=None, path=’/’, domain=None, secure=None, httponly=True)
salt
: 秘钥, 设置加密的cookie
说明
上述所说的HttpResponse返回对象,并不一定必须是HttpResponse的返回对象。这里有歧义,其实也可以是
render()、 redirect() 的返回对象,原因是两者在内部继承的还是与HttpResponse相应的类,返回的也是一个HttpResponse对象。
** 设置中文 cookie **
1. 在Django中设置中文:
# 回写cookie # cookie中设置中文 # 以下操作 应在视图函数中
def viewsFunk(request, *args)
from django.utils.http import urlquote # 导入
HttpRespnse_obj = HttpResponse() # 或者 render() 或者 redirect()
HttpRespnse_obj.set_cookie("userInfo",urlquote(str(userInfo)))
return HttpRespnse_obj
2. 在Html的jQuery中取值:
decodeURIComponent(document.cookie) // 将取出包含中文的字符串,而不是被转义的字符串
二、jQuery操作cookie
由于原生的JS操作繁琐,建议使用jQuery进行操作(jQuery.js 和 cookie.js)
序号 | 操作 | 示例 | 概要 |
---|---|---|---|
1 | document.cookie | . . . |
由DOM获取cookie |
2 | $.cookie('value') | . . . |
用jQuery从cookie中取值 |
序号 | 操作 | 示例 | 概要 |
---|---|---|---|
1 | $.removeCookie('value') | . . . |
由jQuery删除cookie中的值 |
序号 | 操作 | 示例 | 概要 |
---|---|---|---|
1 | $.cookie('val1', 'val2', { key: value, }) | . . . |
由jQuery设置cookie值 |
前端cookie的 编码 与 解码
通过encodeURIComponent(URIstring)对URL进行编码
decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码
参考博客:
_______________________________________________________
上一篇: jquery 选择器
下一篇: POI操作xls表格文件