日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django缓存

發(fā)布時間:2024/1/23 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django缓存 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

緩存針對動態(tài)網(wǎng)站起作用居多,動態(tài)網(wǎng)站的數(shù)據(jù)來源于數(shù)據(jù)庫或者其他的存儲容器。在第一次訪問,就將數(shù)據(jù)庫查詢的數(shù)據(jù)先放到一個地方,這個地方可以是內存,數(shù)據(jù)庫,本地當中,然后,之后訪問同樣的數(shù)據(jù)的時候,直接訪問剛才發(fā)存放的地方,而不是重新查詢,那么這種技術就叫做緩存。
存儲緩存常用的方式:
Memcache緩存:
分布式的高速緩存系統(tǒng),通常用來提高網(wǎng)站的訪問速度。
在本地安裝Memcache服務。
下載解壓緩存包,在解壓目錄下,以管理員身份打開命令行。
Memcached.exe -d install

打開Memcached服務
安裝django-memcache
pip install python-memcached
到global_settings當中復制cache配置結構到自己的settings當中進行配置。
1、memcached緩存

CACHE={'default':{'BACKEND':'django.core.cache.backends.memcached.MemcacheCache',#申明使用memcache進行緩存‘LOCATION’:['127.0.0.1:11211']#memcache地址}}

2、本地緩存

CACHES={'default':{'BACKEND':'django.core.cache.backends.locmem.LocMemCache'#默認使用本地緩存}

3、數(shù)據(jù)庫緩存
redis數(shù)據(jù)庫緩存
pip install django-redis
pip install redis
啟動redis

CACHES={'default':{'BACKEND':'django_redis.cache.RedisCache','LOCATION':['redis://127.0.0.1:6379/1'],#memcacha地址'OPTIONS':{'CLIENT_CLASS':'django_redis.client.DefaultClient'}} }

mysql緩存
#創(chuàng)建對應存放緩存的數(shù)據(jù)表
設置數(shù)據(jù)庫配置
python manage.py createcachetable cache_table

CACHES={'default':{'BACKEND':'django.core.cache.backends.db.DatabaseCache',#默認使用數(shù)據(jù)庫緩存'LOCATION':'cache_table'#存放緩存的表} }

緩存使用的方式:
1、全棧粒度緩存
Django全棧緩存通過緩存配置還有中間件來聲明
首先配置settings的中間件,配置的位置必須一首一尾
settings當中配置

CACHE_MIDDLEWAREWARE_KEY_PREFIX=''" CACHE_MIDDLEWARE_SECONDS=600 CACHE_MIDDLEWAREWARE_KEY_PREFIX=''"

2、視圖緩存

from django.views.decorators.cache import cache_page from django.core.cache import cache @cache_page(60*15) def small_white_views(request):print("我是小白視圖")#raise TypeError("我就不想好好的")return HttpResponse("我是小白視圖")

3、Memcache路由緩存
在開發(fā)過程當中,是否有可能使用不同的路由指向同一個視圖,,比如商品的上架、下架功能,不同的路由,指向同一個視圖,這個時候就需要針對路由進行緩存

path('swv',cache_page(60*15)(small_white_views)),

4、底層緩存
底層緩存接口
set設置caache
get獲取cache
add添加cache

from django.core.cache import cache def small_white_views(request):store_data=cache.get("store_data")#如果沒有返回Noneif store_data:store_data=store_dataelse:data=Store.objects.all()cache.set("store_data",data,30)cache.add("store_data", data, 30)#add只會添加一個緩存,不會修改已有的緩存store_data=datareturn render(request,"store/index.html",locals())

總結

以上是生活随笔為你收集整理的Django缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。