Django缓存使用方法

时间:2023-03-09 16:01:23
Django缓存使用方法

Django缓存分为Session和Cookie:Session为放在服务器端的缓存;Cookie为放在客户端(浏览器)的缓存。

Session一般用来保存登录会话;Cookie一般用来保存一些个性化的设置。

Session示例:

#!/usr/bin/env python
#-*- encoding:utf-8 -*- from django.shortcuts import render,redirect # Create your views here. def login(request): if request.method == 'POST':
user = request.POST.get('username',None)
pwd = request.POST.get('password',None) if user == 'alex' and pwd == '': #登录成功
request.session['is_login'] = {'user':user} #设置session,表示用户登录成功
return redirect('/login/index/')
else: #登录失败
return render(request,'login/login.html',{'msg':'用户名或密码错误'}) return render(request,'login/login.html') def index(request): user_dict = request.session.get('is_login',None) #获取session,用于判断用户是否登录成功
if user_dict:
return render(request, 'login/index.html',{'username':user_dict['user']})
else:
return redirect('/login/login') def logout(request):
del request.session['is_login'] #删除session return redirect('/login/login')

Cookie示例:

def Page(request,page):
#第二种分页方式
counts = Host.objects.all().count() # 获取数据总条数 #print request.POST per_item = request.COOKIES.get('pager_num',5) #从cookie中获取key为pager_num的值,获取不到则设置默认值为5
per_item = int(per_item)
#print 'per_item:',per_item pages = PageInfo(page,counts,'/web/page/',per_item)
result = Host.objects.all()[pages.start_page:pages.end_page] # 获取第page页内容
page_string = pages.page_string
#print 'page_string:',page_string ctx = {
'data':result,
'count':counts,
'page_string':page_string,
} response = render(request,'page.html',ctx)
#response.set_cookie(key='k1',value='v1') #设置cookie
#request.COOKIES #获取cookie
return response