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 == ‘123‘:   #登录成功
            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
时间: 2024-08-02 13:04:15

Django缓存设置的相关文章

Django—— 缓存框架

译者注:1.无用的,吹嘘的说辞不翻译:2.意译,很多地方不准确. 动态网站最为重要的一点就是好,网页是动态的.每一次用户请求页面,网站就要进行各种计算——从数据库查询,到render模板,到各种逻辑运算——生成页面所需的.这个过程是异常消耗资源的,远远比从硬盘读取一个文件然后显示出来的代价高昂. 对于大多数中小网站来说,这也许不是问题,因为他们的访问量不大,而对于大型网站而言,必须尽量减少不必要的服务器资源开支. 因此,有了缓存技术. 缓存就是把一些需要消耗很多资源的计算结果保存下来,当下次需要

Django 缓存方案

在大型网站上,如果访问的流量很多,又有很多动态的内容,这样每次获取一个信息都要去访问数据库,效率就会比较低下.这种情况下,一般都会使用缓存机制,首先去缓存里面找,如果有信息,那么直接获取:没有的话才去数据库获取,然后在缓存里面生成一个数据可以给下一次访问使用. Django里面支持5种常见的缓存设置. 开发测试 本地内存 文件 数据库 Memcached(或者Redis) 这些配置都是在settings.py里面配置的. 开发测试,如果希望生产环境配置缓存,测试不需要,那么只需设置为dummyc

django项目 设置session 实现用户登入登出

一.配置文件 settngs.py中 # 使用django认知系统的登录状态装饰器时,没有登录的话,跳往登录页面后路径是/acount/login 需要重新指定 LOGIN_URL = '/user/login' # 设置允许保存session SESSION_SAVE_EVERY_REQUEST = True # 设置session存放在缓存中 SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 使用默认选项的缓存设置存放se

Django 缓存 使用 Redis Memcached 为网站提速

RedisRedis是一种键值对类型的内存数据库,读写内存比读写硬盘快,我们在Django里面使用Redis非常方便,下面给出详细步骤 基于Ubuntu 1. 安装Redis和django-redissudo apt-get install redis-server1用 redis 做 Django的缓存系统的开源项目地址,有兴趣的看看:https://github.com/niwibe/django-redis 在这里我们把它装上,让Django和Redis手拉手交个朋友 pip instal

contenttype组件、Django缓存机制以及跨域请求

1 昨日回顾 版本控制 *** (1)url=127.0.0.1/course/?version=v100000 1 versioning_class=QueryParameterVersioning 'VERSION_PARAM':'version', 'DEFAULT_VERSION':'v2', 'ALLOWED_VERSIONS':['v1','v2'] 2 配置成全局:在setting里:QueryParameterVersioning (2)重要(以后建议用这种):127.0.0.1

django 缓存 实现

由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存memcached .Redis中之前缓存的内容拿到,并返回. 一.Django缓存的配置和应用 Django中提供了6种缓存方式: 开发调试  (开发调试使用) 内存(不做配置默认:默认配置是Django内置配置文件(用户不可见)

drf版本控制 django缓存

drf的版本控制 内置的版本控制类 from rest_framework.versioning import QueryParameterVersioning,AcceptHeaderVersioning,NamespaceVersioning,URLPathVersioning 各版本的传参方式 #基于url的get传参方式:QueryParameterVersioning------>如:/users?version=v1 #基于url的正则方式:URLPathVersioning----

Django项目: 项目环境搭建 ---- 二、django项目设置

1.配置模板文件 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.

Django缓存系统

缓存 Django 是动态Web后台框架,需要实时生成用户访问的页面,进行多次的数据库操作,但是多次的数据库访问操作对于整个Web系统来说,会影响效率,尤其是当访问量增大时,数据库的压力也会越来越大. 相对于磁盘及内存操作,数据库的访问操作付出的成本要大的多 浏览器第一次请求时,cache会缓存单个变量或整个网页等内容到硬盘或者内存中,同时设置response头部 当浏览器再次发起请求时,会与缓存中的过期时间相比较,如果缓存时间比较新,则会重新请求数据,并缓存起来然后返回response给客户端