来源:兄弟连
记录状态,http请求协议是无状态的协议,记不住用户的信息,因为需要借助一些服务来记住用户的一些状态
cookie
是把数据存在的浏览器中,
内容受限,key==>value 都是字符串
容易被恶意获取,不能有效保护隐私
用法:
用响应对象进行设置
res = HttpResponse()
res.set_cookie()
使用请求对象进行获取
request.COOKIES.get()
session
是在服务器端进行存储数据(数据库,文件,redis)
内容丰富,key是字符串,值可以是任意类型
他数据存储在服务器,不容易被获取,
session在存储数据时会生成一个key(sessionid),把sessionid存储到浏览器的cookie中
每一次请求,都用cookie中sessionid去验证数据,
GET,POST 值的获取
获取一键一值的时候
http://127.0.0.1/user/list/?a=1&b=2&c=3
如果是get方式传递
request.GET['abc'] # 如果abc不存在会报错
request.GET.get('abc',None) #如果abc不存在则读取默认值
如果是post方式传递
request.POST['abc'] # 如果abc不存在会报错
request.POST.get('abc',None) #如果abc不存在则读取默认值
获取一键多值
http://127.0.0.1/user/list/?a=1&a=2&c=3
request.GET.getlist('a',None)
request.POST.getlist('a',None) # a=[1,2]
响应对象
普通文本,加载模板,重定向,返回json
data = [
{'username':'zhangsan','age':21},
{'username':'lisi','age':25},
{'username':'wangwu','age':28},
{'username':'zhaoliu','age':20},
]
# 注意在使用JsonResponse响应json数据时,如果数据不是字典类型,则需要设置,safe=False
return JsonResponse(data,safe=False)