django session

1.django开启session

项INSTALLED_APPS列表中添加:
'django.contrib.sessions',
。。。
项MIDDLEWARE_CLASSES列表中添加:
'django.contrib.sessions.middleware.SessionMiddleware',

2.session保持位置:

数据库:SESSION_ENGINE='django.contrib.sessions.backends.db'
缓存:SESSION_ENGINE='django.contrib.sessions.backends.cache'
缓存和数据库:SESSION_ENGINE='django.contrib.sessions.backends.cached_db'

3.常用函数

  request.session.set_expiry

  request.session.clear

  request.session.flush

  request.session.get

  del request.session['']

4.示例

  基于数据库的操作练习

def index(request):
    uname = request.session.get('uname')
    context = {'uname':uname}
    return render(request,'booktest/index.html',context)
    # return HttpResponse('index')
def login(request):
    return render(request,'booktest/login.html')

def logout(request):
    # request.session.clear()#清空session的值 .数据库中的结果6cca00f4c75b0920edc712d8d2c98ce6538c14fd:{}
    # request.session.flush()#清空session,清空session的key和值
    del request.session['uname']#清空session的值,结果493a47edfe90892d78e8e919a05905bfe5fa411f:{"_session_expiry":0}
    del request.session['passwd']
    return redirect(reverse('booktest:index'))

def login_handle(request):
    request.session['uname'] = request.POST.get('uname')
    request.session['passwd'] = request.POST.get('passwd')
    request.session.set_expiry(0)
    return redirect(reverse('booktest:index'))

结果见备注

  

猜你喜欢

转载自www.cnblogs.com/yitiaodahe/p/9327300.html