<dd id="t699n"></dd>

  • <em id="t699n"></em>

    1. <dd id="t699n"></dd>

      django模板通過自定義過濾器格式化時間戳

      時間:2022-03-31 22:16:20 類型:python
      字號:    

      django模板不能寫py代碼,那么怎么把世間戳轉換成日期時間格式呢,我們可以通過django提供的自定義過濾器功能來實現

      1、在應用目錄下創建 templatetags 目錄(與 templates 目錄同級,目錄名只能是 templatetags)。

      2、在 templatetags 目錄下創建任意 py 文件,如:my_tags.py。

      3、my_tags.py 文件代碼如下:

      from django import template
      import time
      
      register = template.Library()   #register的名字是固定的,不可改變
      
      
      @register.filter
      # 格式化時間戳
      def formTime(t,f):
          return time.strftime(f, time.localtime(float(t)))

      修改 settings.py 文件的 TEMPLATES 選項配置,添加 libraries 配置:

      TEMPLATES = [
          {
              'BACKEND': 'django.template.backends.django.DjangoTemplates',
              'DIRS': [os.path.join(BASE_DIR, 'templates')]
              ,
              'APP_DIRS': True,
              'OPTIONS': {
                  'context_processors': [
                      'django.template.context_processors.debug',
                      'django.template.context_processors.request',
                      'django.contrib.auth.context_processors.auth',
                      'django.contrib.messages.context_processors.messages',
                  ],
                  "libraries":{                          # 添加這邊三行配置
                      'my_tags':'templatetags.my_tags'   # 添加這邊三行配置
                  }                                      # 添加這邊三行配置
              },
          },
      ]

      4、在使用自定義標簽和過濾器前,要在 html 文件 body 的最上方中導入該 py 文件。

         {% load my_tags %}

      5, 模板中使用

       

      {{ row.addtime | formTime:"%Y-%m-%d %H:%M:%S"}}


      黄网站免费 <