zoukankan      html  css  js  c++  java
  • Django登录跳转login_required

    login_required是对Auth认证模块的补充,Auth模块:  https://www.cnblogs.com/weiyiming007/p/12419317.html


    1、login_required介绍

    判断用户是否登录, 如果用户没有登录, 默认会跳转到'/accounts/login/', 并且URL会自动加上你请求的url作为登录后的跳转地址, 
    如:'/accounts/login/?next=/user/address/'登入完后会去请求'/user/address/', 如果登录了, 会正常执行;


    可以在settings.py中设置默认跳转地址, 如:

    LOGIN_URL = '/login.html'


    2、login_required使用

    1)函数视图使用

    from django.contrib.auth.decorators import login_required
          
    @login_required   #添加一个登录校验的装饰器,登录成功才会走到下面,否则会跳转到django默认的登录
    def my_view(request):
      ...


    2)类视图使用

    方法一:将views.UserOrderViews.as_view()当做参数传入login_required

    from django.contrib.auth.decorators import login_required
    from . import views
    
    app_name = 'user'
    
    urlpatterns = [
        url(r'^login/', views.LoginView.as_view(), name='login'),
        url(r'^order/', login_required(views.UserOrderView.as_view())),
    ]


    方法二:    重写as_view方法, 让类视图继承该父类

    utils/mixin.py
    from django.contrib.auth.decorators import login_required
    
    class LoginRequiredMixin(object):
        @classmethod
        def as_view(cls, **initkwargs):
            view = super(LoginRequiredMixin, cls).as_view(**initkwargs)
            return login_required(view)


    views.py中让类视图继承上面的工具类:

    from utils.mixin import LoginRequiredMixin
    
    class IndexView(LoginRequiredMixin,View):
        def get(self, request, *args, **kwargs):
            return render(request, 'index.html')
  • 相关阅读:
    bzoj 1231 [Usaco2008 Nov]mixup2 混乱的奶牛
    bzoj 1263 [SCOI2006]整数划分
    bzoj 1264 [AHOI2006]基因匹配Match dp + 树状数组
    bzoj 1230: [Usaco2008 Nov]lites 开关灯
    2015 icpc北京赛区 D 最小割
    HDU
    bzoj 1079: [SCOI2008]着色方案
    最大素因数
    最大素因数
    欧拉函数
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/12660601.html
Copyright © 2011-2022 走看看