中间件
中间件
什么是中间件?
中间件是一个用来处理Django的请求和响应的框架级别的钩子
中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能。
如何自定义中间件?
3步骤
第一步 在应用下键立一个文件夹(随意取名字)在文件夹下创建一个py文件名字随意取
第2步 在py文件中引入from django.utils.deprecation import MiddlewareMixin 在定义一个中间件(类)
第3步在配置文件 配置
'rbac.middlewares.mymiddlewares.Auth',#配置中间件
rbac下自己创建的middlewares文件夹下的mymiddlewares.py文件下的Auth类
中间件有5个方法
process_request(self,request)
process_view(self, request, view_func, view_args, view_kwargs)
process_template_response(self,request,response)
process_exception(self, request, exception)
process_response(self, request, response)
实列
在应用下键立一个文件夹(随意取名字)在创建一个py文件 py文件下引入from django.utils.deprecation import MiddlewareMixin 定义一个类
配置文件配置
from django.utils.deprecation import MiddlewareMixin
class MD1(MiddlewareMixin):
#自定义中间件,不是必须要有下面这两个方法,有request方法说明请求来了要处理,有response方法说明响应出去时需要处理,不是非要写这两个方法,如果你没写process_response方法,那么会一层一层的往上找,哪个中间件有process_response方法就将返回对象给哪个中间件
def process_request(self, request):
print("MD1里面的 process_request")
def process_response(self, request, response):
print("MD1里面的 process_response")
return response
中间件的5个方法
1、process_request : 请求进来时,权限认证 。
2、process_view : 路由匹配之后,能够得到视图函数
3、process_exception : 异常时执行
4、process_template_responseprocess : 模板渲染时执行
5、process_response : 请求有响应时执行
中间件方法执行流程
请求生命周期
基于多表的表单作业 增删改查
查看书籍思路
因为前端代码要显示全部.all拿到全部数据 注意 要找关了的表要数据要for循环
添加书籍思路
当get请求来 就要传对象过去 为了显示 前端要for循环
当post请求来 就要要注意authors = request.POST.getlist('authors')获得多个值
要删除安全验证 多对多的数据
删除用户思路
和单表一样
修改表思路
<a href="{% url 'editbook' book_obj.pk %}" class="btn btn-warning">编辑</a>
非学,无以致疑;非问,无以广识