怎麼用Python Flask模板jinja2在網頁上列印顯示16進位制數?
阿新 • • 發佈:2018-11-09
問題:Python列表(或者字典等)資料本身是10進位制,現在需要以16進位制輸出顯示在網頁上
解決:
Python Flask框架中 模板jinja2的If 表示式和過濾器
假設我有一個字典index, index['addr']是我要列印在網頁上的元素,本身是字串,需要用int()過濾器將字串轉為整形 index['addr']|int
過濾器原型介紹:
int(value, default=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