Auth登录装饰器

#第一种方式
#在url里
from django.contrib.auth.decorators import lgoin_required

    urlpatterns = [
      path(‘‘,lgoin_required(UserInfoView.as_view()),name=‘user‘),#用户中心-信息页
      path(‘order‘,lgoin_required(UserOrderView.as_view()),name=‘order‘),#用户中心-订单页
      path(‘address‘,lgoin_required(UserAddressView.as_view()),name=‘address‘),#用户中心地址页
]
#第二种方式
from django.contrib.auth.decorators import login_required

class LoginRequireMixin(object):
    @classmethod
    def as_view(cls,**initkwargs):    #该方法是as_view()
        #调用父类的as_view()
        view=super(LoginRequireMixin,cls).as_view(**initkwargs)
        return login_required(view)

#需要使用登录装饰器的视图直接先继承该类OK
class UserInfoView(LoginRequireMixin,View):
    pass

#需要再setting配置登录的URL
#配置登录的url地址LGOIN_URL = ‘/user/login‘
#url不变

  

原文地址:https://www.cnblogs.com/pengsq/p/9716020.html

时间: 2024-08-30 15:44:41

Auth登录装饰器的相关文章

认证登录装饰器与form组件的使用

def auth(func): '''制作登录认证的装饰器''' def inner(request,*args,**kwargs): user_info=request.session.get(settings.SJF) if not user_info: return redirect('/login/') return func(request,*args,**kwargs) return inner ''' form组件的使用 1.用户请求数据验证 2.自动生成错误信息 3.打包用户提交

django session登录装饰器

def login_check(func): @wraps(func) def inner(request,*args,**kwargs): # ret = request.get_signed_cookie('is_login',default=0,salt='dsd',max_age=10) ret = request.session.get("is_login") if ret == '1': return func(request,*args,**kwargs) else: #

Django中间件,csrf校验和装饰器以及auth模块和部分功能

一.Django中间件 1).什么是中间件 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间件组件都负责做一些特定的功能. 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能. 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法. 我们一直都在使用中间

<04day>_函数嵌套--闭包函数--装饰器--迭代器--生成器

一.函数的嵌套定义 1.python函数支持嵌套 def f1(): #f1函数的定义 def f2(): #f2函数的定义 print('from f2') def f3(): #f3函数的定义 print('from f3') f2() f1() 嵌套函数--运行结果说明: 1首先调用f1()结果,f1函数为空.担保函f2函数,f2函数有内容打印并且有调用,f2函数包含f3函数,但f3函数无调用. 运行结果: 列子:多个数据之间的大小比较. #!/usr/bin/python # -*- c

190401装饰器-高阶函数-闭包

一.装饰器 装饰器本质是函数 为其他函数添加附加功能 不修改被修饰函数的源代码 不修改被修饰函数的调用方式 装饰器示例 import time def timmer(func): def wrapper(*args,**kwargs): start_time = time.time() res = func(*args,**kwargs) stop_time = time.time() print("函数的运行时间:%s" % (stop_time - start_time)) ret

04-python 学习第四点-装饰器

装饰器就是一个函数,他是通过不修改某个函数的源代码和调用方式的前提下可以添加新功能的一种函数.在python 中装饰器一般采用高阶函数和嵌套函数达到装饰的作用,下面进行实例讲解: 1.目前有一个网址有很多页面(比如:index,home,bbs).因为时老文字,所有页面都是可以直接浏览的.实现效果如下: def home():#模拟网页homne print("wolcome to home") def bbs():#模拟网页bbs print("wolcome to bbs

Python函数之装饰器

装饰器 一.装饰器的意义 比如:以下函数是供我们调用的,但是我们需要在每个函数中都添加同一个功能,该如何做到呢? 对于函数开放封闭原则,我们一般不允许修改.所以我们引入了装饰器: def outer(func): def inner(): print("添加在原函数之前") r = func() #保留原函数的返回值 print('添加在原函数之后') return r #将保留的返回值返回回去 return inner @outer #等价于f1 = outer(f1) def f1

Python学习之路-装饰器&生成器&正则表达式

装饰器 通俗的讲,装饰器就是在不改变源代码基础上,给源代码增加新功能. 不改变函数的源代码.调用方式.返回值等,给函数增加新功能. 经典案例:登录装饰器, def login_decorator(func):     def inner():         if USER_TEMP["status"] == False:             print("\033[31;1m用户未登录,请先登录\033[0m")             login_atm()

16.python全栈之路:装饰器详解

装饰器 一.装饰器的意义 比如:以下函数是供我们调用的,但是我们需要在每个函数中都添加同一个功能,该如何做到呢? 方法一:在每个函数中都加上新加的功能代码块 def f1(): print("新功能") print("F1") def f2(): print("新功能") print("F2") def f3(): print("新功能") print("F3") def f4(): p