django 使用装饰器验证用户登陆
2024-08-24 20:22:45
使用装饰器验证用户登陆,需要使用@method_decorator
首先需引用,method_decorator,并定义一个闭包
from django.utils.decorators import method_decorator
def checkLogin(func):
def wrapper(request,*args,**kwargs):
is_login=request.session.get('IS_LOGIN',False)
if is_login:
return func(request,*args,**kwargs)
else:
return redirect('/Index/')
return wrapper
登陆页面的定义如下例子:
class Login(View):
def get(self,request):
return render(request,'index.html')
def post(self,request):
username=request.POST.get('username')
user_list=Hbuser.objects.filter(username=username).first()
if user_list:
request.session['IS_LOGIN']=True
request.session['uname']=user_list.username
else:
request.session.flush()
return redirect('/Index/')
return redirect('/Home/')
装饰器的使用方法如下,下面是对整个类实用装饰器
@method_decorator(checkLogin,name='dispatch')
class Home(View):
def get(self,request):
return HttpResponse('OK')
最新文章
- WindowManager.LayoutParams 札记
- ThinkPHP真正疑难问题笔记
- oracle union 注入工具
- 解决qt5在ubuntu下无法调用fcitx输入中文的问题
- Android SQLite数据储存方式
- PHP入门基础(一)——标记风格、注释、表单获取、字符串类型、变量解析
- 二十一、Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读
- 源代码Log
- WebBrowser控件使用详解
- 笔记整理——Linux下C语言正则表达式
- 微软跨平台ORM框架之EFCore — 约定与属性映射
- mysql与linux ~ 磁盘分析与调优
- 13.14.15.16.17&;《一个程序猿的生命周期》读后感
- H5新特性之canvas
- 在deepin中安装docker
- 嵌入式开发之hi3519---i2c MDIO PHY uboot phy调试总结
- tomcat端口设置
- SpringBoot Laravel(artisan serve) MIXPHP简单性能测试
- SQL Server客户端工具到底使用的是哪个provider呢?
- 结构体内的函数与bfs的情景变量