操作小结
创建一个目录和一个文件
文件中写一个登陆验证的mixin类
from django.contrib.auth.decorators import login_required
class LoginRequiredMixin(object):
@classmethod
def as_view(cls, **kwargs):
view = super(LoginRequiredMixin, cls).as_view(**kwargs)
return login_required(view)
视图文件中导入这个类,让视图类继承它,注意位置在左边
例子代码
# /user
class UserInfoView(LoginRequiredMixin, View):
def get(self, request):
return render(request, "user_center_info.html")
# /user/order
class UserOrderView(LoginRequiredMixin, View):
def get(self, request):
return render(request, "user_center_order.html")
# /user/address
class AddressView(LoginRequiredMixin, View):
def get(self, request):
return render(request, "user_center_site.html")
进度存档
https://cloud.189.cn/t/Qbue2yIvYBJv (190929登陆装饰器)
使用登陆装饰器会比较麻烦
直接让需要认证的视图类,继承一个父类
在父类中进行相关的验证
详情
正文开始>>>
关于Mixin的认识
Mixin的类的使用说明
按照范示使用就可
具体的操作
1 开始-创建目录
通用的东西
新建目录
用于存放自定义的模块
创建模块
用于写代码,代码主要就写mixin的内容
编写Mixin的类
在mixin文件中写
先导入验证装饰器
from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import login_required
class LoginRequiredMixin(object):
@classmethod
def as_view(cls, **kwargs):
view = super(LoginRequiredMixin, cls).as_view(**kwargs)
return login_required(view)
子类(mixin)
子类.as_view() ----> login_required(函数)
使用自定义Mixin的效果
对于需要登陆后验证的视图
用的时候
》路由的定义,按照普通的视图类方式定义
》在视图函数中
需要验证的视图继承
路由,变为原来的写法
代码示例
# /user
class UserInfoView(LoginRequiredMixin, View):
def get(self, request):
return render(request, "user_center_info.html")
# /user/order
class UserOrderView(LoginRequiredMixin, View):
def get(self, request):
return render(request, "user_center_order.html")
# /user/address
class AddressView(LoginRequiredMixin, View):
def get(self, request):
return render(request, "user_center_site.html")
》了解原理
效果演示视频
mixin的演示
其它视图类的mixin装备效果