用django的自带的装饰器或中间件非常简单的实现强制登录

以前刚开使用django 的时候做强制登录是在视图函数里面用session存取登录状态来做强制登录的,其次还可以用django 的中间件可以做强制登录,也是比较简单的,今天给大家介绍的是django自带的装饰器做强制登录。

# 1. 写好登录html
def login(request):
    return render(request, 'portal/login.html')
# 2. 在url路由中配置
 path('login/', views.login, name='portal-login'),
# 3. 在views导包
# 函数试图导入
from django.contrib.auth.decorators import login_required
#如果有类试图的话,需要导
from django.utils.decorators import method_decorator
# 然后给每个需向强制登陆的视图上面加上装饰器

# 函数视图案列   
@login_required(redirect_field_name="portal-login")
def belt_and_road(request):
    return render(request, 'portal/belt_and_road.html')
# 类视图案列
@method_decorator(login_required, name='dispatch')
class ResourceListView(ListView):
    context_object_name = 'specimen'
    
    def get_queryset(self):
        self.keyword = self.request.GET.get('keyword', '')
        if len(self.keyword) != 0:
            return Specimen.objects.filter(
                Q(chinesename__contains=self.keyword) | Q(scientificname__contains=self.keyword) | Q(
                    canonicalname__contains=self.keyword) | Q(family__contains=self.keyword) | Q(
                    genus__contains=self.keyword)).order_by("id")
        return Specimen.objects.all()

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['keyword'] = self.keyword
        return context

这样就做好了强制登录了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BRYTLEVSON

打赏的都是天使,创作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值