中间件

中间件

什么是中间件?

中间件是一个用来处理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 : 请求有响应时执行

中间件方法执行流程

img


请求生命周期

img

基于多表的表单作业 增删改查

查看书籍思路

因为前端代码要显示全部.all拿到全部数据 注意 要找关了的表要数据要for循环

添加书籍思路

当get请求来 就要传对象过去 为了显示  前端要for循环
当post请求来 就要要注意authors = request.POST.getlist('authors')获得多个值
要删除安全验证 多对多的数据



删除用户思路

和单表一样 

修改表思路

<a href="{% url 'editbook' book_obj.pk %}" class="btn btn-warning">编辑</a>

posted @ 2020-03-02 17:58  一起奥利给  阅读(227)  评论(0编辑  收藏  举报