国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Python自定義計算時(shí)間過(guò)濾器實(shí)現過(guò)程的示例分析

發(fā)布時(shí)間:2021-09-27 17:50 來(lái)源:億速云 閱讀:0 作者:小新 欄目: 開(kāi)發(fā)技術(shù)

這篇文章主要介紹Python自定義計算時(shí)間過(guò)濾器實(shí)現過(guò)程的示例分析,文中介紹的非常詳細,具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

在寫(xiě)自定義的過(guò)濾器時(shí),因為django.template.Library.filter()本身可以作為一個(gè)裝飾器,所以可以使用:

register = django.template.Library()@register.filter  代替 register.filter("過(guò)濾器名","函數名")

如果使用@register.filter進(jìn)行注冊自定義的過(guò)濾器,并且沒(méi)有傳遞任何參數,那么默認的過(guò)濾器名和函數名是相同的,當然,也可以進(jìn)行修改,只需要在@register.filter("過(guò)濾器名"),此時(shí)的過(guò)濾器名就更改了,就可在DTL模板中使用自定義的過(guò)濾器了。

定義時(shí)間計算過(guò)濾器在顯示的時(shí)候,時(shí)間的顯示規則:time距離現在多長(cháng)時(shí)間間隔

如果時(shí)間間隔小于1分鐘,那么就像是“剛剛”如果時(shí)間間隔大于1分鐘小于1小時(shí),那么就顯示“xx分鐘前”如果是大于1小時(shí)小于24小時(shí),那么就顯示“xx小時(shí)前”如果是大于24小時(shí),小于30天,那么就顯示“xx天前”'否則就是顯示具體時(shí)間

示例代碼如下:

自定義過(guò)濾器的文件my_fliter.py

@register.filter()def time_since(value):  # 首先對傳進(jìn)來(lái)的時(shí)間進(jìn)行判斷,如果是datetime類(lèi)型的就可以與當前的時(shí)間進(jìn)行比較,  # 如果不是datetime類(lèi)型的,就直接返回value  if not isinstance(value,datetime):    return value  # 如果可以到達這里,就代表為datetime類(lèi)型的,  # timedelay.total_seconds()屬性  now = datetime.now()  timestamp = (now - value).total_seconds()  if timestamp < 60:    return "剛剛"  elif timestamp >= 60 and timestamp < 60*60:    # 在python3中如果兩數相除,有余數的話(huà),就會(huì )保持小數,這個(gè)時(shí)候我們就可以使用int()函數,進(jìn)行轉換    minutes = int(timestamp/60)    return "%s分鐘前" % minutes  elif timestamp >= 60*60 and timestamp < 60*60*24:    hours = int(timestamp/60/60)    return "%s小時(shí)前" % hours  elif timestamp >= 60*60*24 and timestamp < 60*60*24*30:    days = int(timestamp/60/60/24)    return "%s天前" % days  else:    return value.strftime("%Y/%m/%d %H:%M")

views.py中定義視圖函數,并且構造一個(gè)時(shí)間:

from django.shortcuts import renderfrom datetime import datetimedef index(request):  context = {    'time': datetime(year=2019,month=1,day=16,hour=23,minute=44,second=0)  }  return render(request,'index.html',context=context)

index.html中進(jìn)行調用:

{# 如果想要使用自定義的過(guò)濾器的話(huà),就必須要先導入 ,導入的名稱(chēng)為自定義過(guò)濾器所處的文件名 #}{# 必須要把app安裝到settings.py文件中 #}{% load my_fliter %}<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Title</title></head><body>  {{ time|time_since }}</body></html>

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

国产综合精品| 亚洲综合色无码| CHINESE性内射高清5| 久久九九AV免费精品| 亚洲自偷自偷图片| 色综合另类小说图片区 |