1. 程式人生 > >Django學習之 快取

Django學習之 快取

  • 什麼是快取?

    如果我們首次訪問網站的頁面,或者進行資料庫的全表查詢的時候,以及耗時操作;

    • 耗時操作:

      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