Django學習之 快取
阿新 • • 發佈:2018-12-10
-
什麼是快取?
如果我們首次訪問網站的頁面,或者進行資料庫的全表查詢的時候,以及耗時操作;
-
耗時操作:
1, 資料庫的查詢方面
2, web的模板渲染方面,
-
-
為什麼要去做快取?
1, 為了互動友好化; 提高使用者與伺服器互動的能力
2, 為了頁面的響應速度
-
快取的方式?
1, 本地快取
2, 記憶體快取
3, 資料庫快取
4, 網路快取
5, redis快取
django快取
-
普通資料庫快取:
1, 基本配置:
資料庫快取配置:
CACHES = { 'default': { #上面兩行是資料庫快取的配置 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'my_table_name', } } #建立一張快取表,命令:python manage.py createcachetable [表名] # 再在你的檢視函式上方新增一句話@cache_page(過期時間)
-
redis快取:
1, 基本配置:
第一步 先去載入django-redis 在pycharm下面直接輸入 pip install django-redis第二步 在settins下面配置:
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } }
-
自定義快取?
models層:
calss StudentModel(models.Model):
s_name = models.CharField(max_length=32)
s_age = models.ItenrField(max_length=32)
s_sex = models.BoolField(max_length=32)
自定義快取:
def getStu(request): # 這一步是先去快取中取資料,如果快取有,就直接返回 # 如果沒有 那麼就直接去伺服器取 student_cache = cache.get("get_students") # 判斷,如果該key對應的有值,就直接返回 if student_cache: result = student_cache else: sleep(5) # 取資料庫中的表 stus = StudentModel.objects.all() data = { "students": stus, } # 載入模板 template = loader.get_template("stu.html") # 渲染資料 result = template.render(data) # 這一步是儲存快取的頁面 cache.set("get_students",result,60) return HttpResponse(result)
-
富文字
-
用處:
1, 在後臺中使用
2, 在頁面中使用,通常用來做部落格
-
使用步驟:
1, 裝外掛 pip install django-tinymce
2, 設定settings路徑:
在INSTALED_APPS新增'tinymce'
然後設定
TINYMCE_DEFAULT_CONFIG = { 'theme':'advanced', 'width':800, 'height':600, }
3, 建立模型類在model層,
4, 在admin.py下面註冊model寫好的class