django之缓存和跨域

本文详细介绍了Django中的缓存策略,包括缓存位置配置、缓存粒度及使用方法。同时深入探讨了全站、单页面与局部缓存的实现,以及如何在前后端分离项目中利用Redis进行高效缓存管理。

django中的缓存
  -Django中的缓存方式:缓存的位置
    -开发调试阶段:没有缓存
    -缓存到内存中
    -缓存到数据库
    -缓存到文件
    -缓存到redis
  -缓存位置的配置(在setting中配置,BACKEND不同,缓存的位置不同):

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', # 指定缓存使用的引擎
'LOCATION': 'D:\xxx\cache', # 指定缓存的路径
'TIMEOUT': 300, # 缓存超时时间(默认为300秒,None表示永不过期)
'OPTIONS': {
'MAX_ENTRIES': 300, # 最大缓存记录的数量(默认300)
'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)}}}

 


  -缓存粒度
    -全站缓存
    -单页面缓存
    -局部缓存
  -缓存使用:
    -1 配置setting文件,把cache配置进去
    -2 单页面缓存:在视图函数上加一个装饰器
      from django.views.decorators.cache import cache_page
      @cache_page(5) 5 代表缓存时间
    -3 局部缓存
      {% load cache %}
      {% cache 5 'test'%} 第一个参数表示缓存时间,第二个参数是key值(取缓存的时候,需要根据key值取)
      当前时间:{{ time }}
      {% endcache %}

    -4 全站缓存
      -在setting中配置两个中间件:注意顺序
      'django.middleware.cache.UpdateCacheMiddleware',(最前面)
      。。。。
      'django.middleware.cache.FetchFromCacheMiddleware'(最后面)
    -5 高级用法
      -前后端分离项目
        -设置值跟取值:
          cache.set('test_data',{'name':'lqz','age':18},5)
          cache.get('test_data')


跨域问题
  -浏览器的:同源策略,浏览器拒绝不是当前域域返回的数据
  -ip地址和端口号都相同才是同一个域


如何解决
  -CORS:跨域资源共享
  -简单请求:发一次请求
  -非简单请求:非简单请求是发送了两次请求,第一次是预检请求(OPTIONS请求),当预检通过,允许我发请求,再发送真实的请求
  -解决跨域问题:(写好这个中间件配置一下)
    class MyCorsMiddle(MiddlewareMixin):
    def process_response(self, request, response):
      if request.method == 'OPTIONS':
      # 允许它
        response['Access-Control-Allow-Headers'] = 'Content-Type'
        # obj['Access-Control-Allow-Headers']='*'

        # obj['Access-Control-Allow-Origin']='http://127.0.0.1:8000'
        response['Access-Control-Allow-Origin'] = '*'
        return response

redis的安装和简单使用
  -内存数据库
    -Redis-x64-3.2.100---》类似mysql
    -redis-desktop-manager-0.9.3.817----》类似navcate
  -安装完后
    -redis-server 服务端
    -redis-cli 客户端

转载于:https://www.cnblogs.com/xuxingping/p/11153664.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值