装饰器做权限认证

#!/usr/bin/env python
#_*_coding:utf-8_*_
from django.shortcuts import render,HttpResponse

allow_list = [‘admin‘]

def cron_allow(request,**kwargs):
    if request.user.username in allow_list:
        return True
    else:
        return False
def check_cron_permission(fun):
    def wapper(request, *args, **kwargs):
        if cron_allow(request, **kwargs):
            return fun(request, *args, **kwargs)
        return render(request, ‘forbiden.html‘, locals())
    return wapper

装饰器的介绍参加  以前的文章

时间: 2024-12-28 01:49:41

装饰器做权限认证的相关文章

Django基于Cookie装饰器实现用户认证

def login(request): if request.method =="GET": return render(request,"login.html") elif request.method == "POST": u = request.POST.get("user") p = request.POST.get("password") print(u,p) if u ==user and p

django之基于cookie和装饰器实现用户认证

一.使用Django自带的decorator 通常情况,使用 函数定义的view,可以直接使用 login_required 直接装饰 @login_required def index(request): if request.method == "GET": return render(request, "index.htm") def user_login(request): if request.method == "GET": retu

flask中的endpoint、自定义转化器、与djnago中session区别、利用装饰器实现登录认证

flask路由中的endpoint 与自定义转化器 ''' endpoint主要用于 反向解析, 例如:login函数中配的路由是/login,其中endpoint='lg' 则在其他函数,可以用 url=url_for('lg'),redirect(url)直接访问login函数 ''' ''' 自定义转化器,可以用来动态更新url_for 的跳转路由 其中 to_python主要是给后端的,可以对路由参数做修改 to_url是给前端url的,可以更新指定的url ''' flask与djan

Django 之装饰器实现登录认证

def check_login(func): # 自定义登录验证装饰器 def warpper(request, *args, **kwargs): is_login = request.session.get('is_login', False) if is_login: func(request, *args, **kwargs) else: return redirect("/login") return warpper def login_user(request): if r

BIEE 11g外部表做权限认证

1.数据库中创建用户表BIEE_AUTH: create table BIEE_AUTH ( USERID VARCHAR2(20), USERNAME VARCHAR2(20), USERPWD VARCHAR2(20), USERROLE VARCHAR2(100) ); 这里注意,用户有多个角色时,用";"分开:USERROLE这个字段,如果用户角色较多,字段大小需按实际设定:如果想把数据权限都放在一个表里弄的话,估计表要重新设计,这个只是简单测试用.存的数据如下: 2.RPD创

装饰器2_根据认证来源判断用户和计算登录时间

import time def timmer(func): def wrapper(*args,**kwargs): print("----->from timmer_wrapper") start_time = time.time() reg = func(*args,**kwargs) stop_time = time.time() run_time = stop_time - start_time print('run time is %s' % run_time) ret

装饰器做缓存

#!/usr/bin/python # coding: UTF-8 import datetimeimport timenow = datetime.datetime.now from functools import wraps def cache(func): caches = {} @wraps(func) def wrap(*args): if args not in caches: caches[args] = func(*args) return caches[args] retur

用装饰器做一个登陆功能(进阶):

1 dic = { 2 'username':None, 3 'status':False 4 } 5 def login(flag): # 传入 '微信','QQ' 6 def wrapper(f): 7 def inner(*args,**kwargs): 8 if dic['status'] == True: 9 ret = f() 10 return ret 11 else: 12 i = 0 13 while i < 3: 14 username = input('请输入你的%s账号:

002_第三部分_[函数 / 高阶函数 / 装饰器]

一.高阶函数: 顺序排序 enumerate([1,2 ,3 , 4, 5]) for idx, item in enumerate([1, 2, 3, 4]):     print(idex)     print(item) def sort(*args):     ret = []     for item in args:         for i, v in enumerate(ret):             if item > v:                 ret.ins