1. 程式人生 > >怎麼用Python Flask模板jinja2在網頁上列印顯示16進位制數?

怎麼用Python Flask模板jinja2在網頁上列印顯示16進位制數?

問題:Python列表(或者字典等)資料本身是10進位制,現在需要以16進位制輸出顯示在網頁上

解決:

Python Flask框架中 模板jinja2的If 表示式和過濾器

假設我有一個字典index, index['addr']是我要列印在網頁上的元素,本身是字串,需要用int()過濾器將字串轉為整形 index['addr']|int

過濾器原型介紹:

 int(valuedefault=0)

Convert the value into an integer. If the conversion doesn’t work it will return 0

. You can override this default using the first parameter.

 

字典元素轉為整形後再用if表示式格式化輸出

If 表示式介紹:

一般的語法是 <do something> if <something is true> else <do something else> 。

else 部分是可選的。如果沒有顯式地提供 else 塊,會求值一個未定義物件:

{{ '[%s]' % page.title if page.title }}

下面這個表示式就是我最終需要的結果,%X是以16進位制大寫字元輸出的意思,和C語法一樣,前面補上0x更直觀。

<td>{{ '[0x%X]' % index['addr']|int if index['addr']}}</td>

不要if後面語句也是可以的

'[0x%X]' % index['addr']|int

 

參考連結:

http://docs.jinkan.org/docs/jinja2/templates.html#if-expression