dj鲜生-28-登陆验证父类的使用-Mixin类的定义

操作小结

创建一个目录和一个文件

文件中写一个登陆验证的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装备效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值