第三章 模版層 5 人類可讀性

2022-06-11 07:09:09 字數 1759 閱讀 2355

一些django的『奇技淫巧』就存在於這些不起眼的地方。

為了提高模板系統對人類的友好性,django在django.contrib.humanize中提供了一系列的模板過濾器,有助於為資料展示新增「人文關懷」。

對於數字1~9,返回英文單詞,否則返回數字本身。 這遵循了出版圖書的格式。

例如:可以傳遞整數,或者整數的字串形式。

將整數或浮點數(或兩者的字串表示形式)轉換為每隔三位數字包含逗號的字串。這在財務報表中很有用。

例如:如果啟動了format localization,還將遵循使用者本地國家標準。例如,在德語('de')中:

將大整數(或整數的字串表示形式)轉換為友好的文字表示形式。適用於超過一百萬的數字。

例如:支援高達10的100次方 (googol) 的整數。

如果啟動了format localization,還將遵循使用者本地國家標準。例如,在德語('de')中:

對於當天或者一天之內的日期,返回「today」,「tomorrow」或者「yesterday」的表示形式,視情況而定。否則,使用傳進來的格式字串進行日期格式化。

例如(「今天」是2023年2月17日):

其它的日期,還是按照傳統的方法展示。

對於日期時間的值,返回乙個字串來表示多少秒、分鐘或者小時之前。如果超過一天之前,則回退為使用timesince格式。如果是未來的日期時間,返回值會自動使用合適的文字表述。

例如(「現在」是2023年2月17日16時30分0秒):

17 feb 2007 16:30:00 會變成 now。

17 feb 2007 16:29:31 會變成 29 seconds ago。

17 feb 2007 16:29:00 會變成 a minute ago。

17 feb 2007 16:25:35 會變成 4 minutes ago。

17 feb 2007 15:30:29 會變成 59 minutes ago。

17 feb 2007 15:30:01 會變成 59 minutes ago。

17 feb 2007 15:30:00 會變成 an hour ago。

17 feb 2007 13:31:29 會變成 2 hours ago。

16 feb 2007 13:31:29 會變成 1 day, 2 hours ago。

16 feb 2007 13:30:01 會變成 1 day, 2 hours ago。

16 feb 2007 13:30:00 會變成 1 day, 3 hours ago。

17 feb 2007 16:30:30 會變成 30 seconds from now。

17 feb 2007 16:30:29 會變成 29 seconds from now。

17 feb 2007 16:31:00 會變成 a minute from now。

17 feb 2007 16:34:35 會變成 4 minutes from now。

17 feb 2007 17:30:29 會變成 an hour from now。

17 feb 2007 18:31:29 會變成 2 hours from now。

18 feb 2007 16:31:29 會變成 1 day from now。

26 feb 2007 18:31:29 會變成 1 week, 2 days from now。

將乙個整數轉化為它的序數詞字串。

例如:

第三章 模版層

每乙個web框架都需要一種很便利的方法用於動態生成html頁面。最常見的做法是使用模板。模板包含所需html頁面的靜態部分,以及一些特殊的模版語法,用於將動態內容插入靜態部分。說白了,模板層就是如何往html檔案中填入動態內容的系統。django可以配置乙個或多個模板引擎 語言 也可以不用引擎。dj...

第三章 傳輸層

傳輸層是為應用層提供傳輸服務的 端到端指的就是從這個應用程式到那個應用程式。多路復用和多路分解 是傳輸層的一項基本功能,支援眾多應用程序共用同乙個傳輸層協議,並能夠將接收到的資料準確交付給不同的應用程序。tcp套接字 標識一條tcp連線 源ip位址,源埠號,目的ip位址,目的埠號 當乙個tcp報文端...

第三章 類和成員

1 類和結構 1 類和結構實際上都是建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料的方法。class phonecustomer 2 結構與類的區別是它們在記憶體中的儲存方式 類是儲存在堆 heap 上的引用型別,而結 構是儲存在堆疊 stack 上的值型別 訪問方式和一些特徵 如結構不...