标签:自带 清空 session queryset onclick dex 获取 lan logo
1. 使用cookie和session的步骤
简要 步骤:
1.设置session requset.session[‘自定义一个名字‘]=值 2.获取session值 request.session.get(‘自定义的名字‘) 3.清空session request.session.flush() 4.存储session的数据表 django_session
举例说明:
def login(requset): if requset.method==‘POST‘: username=requset.POST.get(‘username‘) password=requset.POST.get(‘password‘) ret=models.User.objects.filter(username=username,password=password)#如果不匹配 就是一个空的queryset集合 if ret: requset.session[‘is_login_egon‘]=True #设置settion requset.session[‘username‘]=username #为了在index的页面 渲染用户名 return redirect(‘/index/‘) else: return redirect(‘/login/‘) return render(requset,‘login.html‘) def index(request): #取值session 做判断 if not request.session.get(‘is_login_egon‘): return redirect(‘/login/‘) name=request.session.get(‘username‘) return render(request,‘index.html‘,locals()) #这个locals()感觉就是有啥值都返回 def logout(request): request.session.flush() #原理就是根据sessionkey 然后删除整条session记录 return redirect(‘/login/‘)
2.使用auth模块的步骤
简要步骤:
使用django自带的auth_user表 导入: from django.contrib import auth from django.contrib.auth.models import User auth.authenticate()做验证 auth.authenticate(username=username,password=password) 设置session auth.login(requset,user) #第二个参数是 当前的登录对象 也就是上边验证的user这个对象 判断session if not request.user.is_authenticated(): 删除session auth.logout(request) 创建超级用户 >python manage.py createsuperuser # User.objects.create_user(username=username,password=password) User.objects.create_superuser(username=username,password=password)
举例说明:
from django.contrib import auth from django.contrib.auth.models import User def login(requset): if requset.method==‘POST‘: username = requset.POST.get(‘username‘) password=requset.POST.get(‘password‘) #有 返回对象;无 返回空 user=auth.authenticate(username=username,password=password) if user: #当用户登录成功后 就该记录cookie session了 #设置session auth.login(requset,user) #第二个参数是 当前的登录对象 也就是上边验证的user这个对象 return redirect(‘/index/‘) pass else: return redirect(‘/login/‘) return render(requset,‘login.html‘) def index(request): #验证是否有了session 返回布尔值 if not request.user.is_authenticated(): return redirect(‘/login/‘) return render(request,‘index.html‘) def logout(request): auth.logout(request) return redirect(‘/login/‘)
http://www.cnblogs.com/lazyball/p/7986132.html
标签:自带 清空 session queryset onclick dex 获取 lan logo
原文地址:http://www.cnblogs.com/lazyball/p/7986094.html