• 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')
  • 相关阅读:
    idea+maven使用
    MySQL数据库一个字段对应多个值得模糊查询
    什么时候用接口?什么时候用抽象类?
    线程的死锁和死锁解决的实际案例
    idea 实用插件
    linux查看日志报错
    mysql日期模糊查找的方法
    mysql 日期函数
    win10安装sonarqube
    docker中mysql数据库导出部分数据
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/12660601.html
Copyright © 2020-2023  润新知