欢迎访问个人博客http://www.jkraise.top
Django 之 Cookie & session
Cookie & session
-
设置 Cookie
-
from datetime import datetime,timedelta form django.views import View class BooksView(View): ''' 测试模板 http://127.0.0.1:8000/books/ ''' def get(self, request): # 获取所有的图书 book = BookInfo.objects.all() # 构造上下文 context = { 'books':books } # 使用上下文渲染'book.html', 并返回个客户端 response = render(request, 'book.html', context) # 设置cookie ''' 参数1 key名, 参数2 value, max_age= 设置过期时间,单位是秒 ''' response.set_cookie('name', 'itcast', max_age=14 * 24 * 3600) ''' expires 设置过期时间,是从现在的时间开始到那个时间结束 ''' # response.set_cookie('name', 'tong', expires=datetime.now()+timedelta(days=14)) return response
class GetCookie(View):
def get(self, request):
name = request.COOKIES.get('name')
print('name =',name) # tong
Session
- 在设置中 查看子应用 处理 session 开启没
- 处理session 的中间件
-
在视图函数中 request 对象设置 session
- -
读取数据
-
清除 Session 的方式
-
# 删除 值的部分 request.session.clear() # 清空 session 整个数据 request.session.flush() # 删除某个key&value del request.session['key']
cookie遇到 的一些问题
报错 return str(self).encode(‘iso-8859-1’)
-
cookie的 value 为 中文 会遇到编码
-
案列
-
import json from django.http import HttpResponse ''' cookie 添加视图 类''' class TestSC(View): def get(self, request): if 'name' in request.session and 'weight' in request.session: name = request.session['name'] weight = request.session['weight'] if 'num' in request.COOKIES and 'age' in request.COOKIES: num = request.COOKIES['num'] age = request.COOKIES['age'] # 这里依旧 使用 json.loads() #进行反序列 化操作 print(name, weight, json.loads(num), age) # 打印结果 xiaoming 135 '3年2班' '10' del request.COOKIES['num'] return HttpResponse('ok') return HttpResponse('cookie---失效') def post(self, request): # 从from 表单 获取 num num='3年2班' # 1. json.dumps 进行序列化 num = request.POST.get('num') num = json.dumps(num) # num = json.dumps(request.POST.get('num')) age = request.POST.get('age') # session 存入数据 request.session['name'] = 'xiaoming' request.session['weight'] = '135' hep = HttpResponse('添加cookie -----') # 2. 设置cookie 成功, 编码问题解决 hep.set_cookie('num', num) hep.set_cookie('age', age) return hep
-
-