pip install python-memcached
(ps:如果django项目使用的是anaconda的虚拟环境,请务必在虚拟环境下执行pip命令)首先需要找到全局配置文件global_settings.py,我的是在D:/anaconda/envs/DjangoPath/Lib/site-packages/django/conf/global_settings.py,因为这里使用的anaconda的虚拟环境,如果使用的是python的话应该是在安装目录的lib文件夹下。
打开global_settings.py文件,找到下面这段代码
# The cache backends to use.
CACHES = {
'default': {
'BACKEND':'django.core.cache.backends.locmem.LocMemCache',
}
}
CACHE_MIDDLEWARE_KEY_PREFIX = ''
CACHE_MIDDLEWARE_SECONDS = 600
CACHE_MIDDLEWARE_ALIAS = 'default'
将这段代码复制出来,在自己django项目的settings.py文件的最后添加该代码,并将代码进行如下的修改:
# The cache backends to use.
CACHES = {
'default': {
#将cache后端修改为memcache
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
#添加memcache的服务地址
'LOCATION':[
'127.0.0.1:11211'
]
}
}
CACHE_MIDDLEWARE_KEY_PREFIX = ''
CACHE_MIDDLEWARE_SECONDS = 600
CACHE_MIDDLEWARE_ALIAS = 'default'
#导入缓存使用的模块
from django.views.decorators.cache import cache_page
#在对应的视图前加装饰器cache_page(),cache_page()中必须设置缓存持续时间,这里的单位是秒,60*2代表2分钟
@cache_page(60*2)
#这个函数视图是我随意写的
def shoppingcart(request):
print('+++++++++++++++++++++++')
return HttpResponse('Hello')
from django.urls import path,re_path
from .views import *
from django.views.decorators.cache import cache_page
urlpatterns = [
path('cacahtest/',cache_page(60*1)(cacahtest)),
]
from django.core.cache import cache
from django.http import HttpResponse
def viewcache(request):
order_number = request.GET.get('order_number')
# 从缓存中获取数据
data = cache.get(order_number)
print('--------')
if not data:
print('现在没有缓存')
# 设置缓存,缓存中的数据以键值对的形式存储,第一个参数是键名,第二个参数是对应的值,第三个参数是缓存存在时间
cache.set(order_number,15,90)
return HttpResponse('缓存添加成功')
return HttpResponse(data)