• <ol id="gebcs"></ol>
    <track id="gebcs"><i id="gebcs"></i></track>

    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"}}


    黄片基地 <