python框架Django自定义登录验证装饰器,实现登陆状态校验

Django是python中使用最广泛的框架,我们在开发Django应用的时候,经常遇到某些页面需要用户登录后才能访问,如个人中心,实现的逻辑就是简单地判断当前用户的登录状态而已。

一、开发应用场景需求:

  • 在用户进行访问系统特定页面时,对用户进行登录校验,只有登录认证过才准许其访问
  • 当校验用户未登录状态,跳转至登录页面进行登录,登录后能够跳转用户初始访问的页面,保证用户体验的良好性

二、Django实现方法有2个:

  • 1、使用Django自带的auth模块的login_required
  • 2、自己定义装饰器方法
  • 三、login_required实现方法:

    login_required 实现方法比较简单,具体代码如下:

    <code>#seting文件
    LOGIN_URL = '/user/login/'

    #view文件
    from django.contrib.auth.decorators import login_required
    @login_required
    def my_view(request):
    pass/<code>

    四、自定义登陆状态校验器

    1、先写check_login装饰器

    <code>from django.http import HttpResponseRedirect
    def check_login(fn):
    def wrapper(request,*args,**kwargs):
    if request.session.get('IS_LOGIN', False):
    return fn(request,*args,*kwargs)
    else:
    # 获取用户当前访问的url,并传递给/user/login/
    next = request.get_full_path()
    red = HttpResponseRedirect('/user/login/?next=' + next)
    return red
    return wrapper/<code>

    2、接下来,我们需要在,需要的view控制器里面加上装饰器了

    python框架Django自定义登录验证装饰器,实现登陆状态校验

    好了,接下来,就去尝试了。大概就这么多,有问题欢迎留言,后续会分享更多Django方面的应用,有兴趣可关注下哈。


    分享到:


    相關文章: