django学习之类视图,中间件

一般情况下,我们以函数定义的视图,为函数视图。以类定义的视图叫做类视图。

函数视图便于理解,但是遇到多种http请求时,需要在一个函数中编写不同的业务逻辑。

定义完类视图之后还需要在urls中注册,配合路由时,需要类视图的as_view()方法。

url(r"^register/$", views.Register.as_view()),

2.类视图使用装饰器

给单个方法加装饰器,需要引入method_decorator装饰器。使用method_decorator转换为类视图可用的装饰器,然后将自己定义的装饰器写入其中。如下:

要装饰类视图中的所有方法除了装饰dispatch方法之外还可以在url配置中进行装饰

中间件:1.请求之后,视图函数处理之前;2.视图函数处理之后,返回之前

类似与flask中钩子函数。

定义:利用装饰器形式来写

中间件定义完之后需要在setting中进行注册

注册完中间件之后会对所有的应用视图函数都起作用,不管中间件定义在哪。如下:在classview.middleware.py中定义的my_middleware中间件,调用/users应用下的index方法时,也会起作用。

多个中间件注册时的执行顺序:

在请求视图函数前,中间件由上到下;

在请求视图函数后,中间件由下到上;

猜你喜欢

转载自blog.csdn.net/qq_35867759/article/details/83540332