day79
昨日回顾
昨日回顾: cookie: -是什么?存储在客户端浏览器上的键值对 -干啥用的?记录状态 -django中使用: -设置值: -HttpResponse对象,obj.set_cookie(key,value,超时时间) -JsonResponse也可以用 -取值 request.COOKIES 字典,然后把要取的值取出来,推荐用get -删除值 -HttpResponse对象,obj.delete_cookie('key'),从客户浏览器中删除 -其他一些属性: -加盐的cookie -超时时间 -路径:如果是根路径,说明,以后所有的请求,都会携带cookie过来 -域:在某个域下有效 session: -是什么?存在服务器上的键值对:key是一个随机字符串,value是个字典 -有什么作用:安全性,客户端浏览器不再存储敏感信息 -django中使用: -设置值 -request.session['name']=lqz -1 生成一个随机字符串 -2 存到数据库 随机字符串 {'name':lqz} -3 向cookie中写入:sessionid 随机字符串 -如果:再设置一次值 request.session['age']=18 只在随机字符串对应的字典内部添加,{'name':lqz,'age':18} -取值 -request.session.get('name') -先取出cooki中的随机字符串 -取数据库根据随机字符串查询,拿到data的值 -从字典中取出name对应的值 -删除值 -request.session.delete()------>只是删除数据库的内容 -request.session.flush()------>删除数据库的内容,又删除浏览器的cookie -其他的属性: -默认session存在数据库,可以存在缓存,文件 -超时时间 -路径:如果是根路径,说明,以后所有的请求,都会携带cookie过来 -域:在某个域下有效 -其他的
今日内容
1.什么是中间件?
中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能
作用:可以控制请求和响应
django中内置有几个中间件
自定义一个中间件
# 自定义中间件 class FirstMyMid(MiddlewareMixin): # 请求过来时,中间响应的方法 def process_request(self, request): print('----' * 50) print('this is request') # 如果 return 一个HttpResponse那么将直接从这个中间件开始往浏览器端返回(跳过后面所有的过程) # 如果 return 一个None那么将会往下一个中间件继续传递。 # return HttpResponse('Is MyMid') # return 'asd' #出错,源码判断 is Not None 就返回 response # 请求回去时,中间响应的方法 def process_response(self, request, response): print('----' * 50) print('this is response') return response # 经过路由控制来到process_view 可以获取到本次请求的视图函数地址 def process_view(self, request, view_func, view_args, view_kwargs): print('----' * 50) # res = view_func(request) print('view_func:', view_func) print('view_args:', view_args) print('view_kwargs', view_kwargs) # 一旦视图函数报错这里的exception可以接收到错误信息(执行完视图函数之后才会执行该函数) def process_exception(self, request, exception): return HttpResponse(exception)